2016-04-27 4 views
0

他のウェブサイトのiframe内でウィジェットを扱うアプリケーションがあります。これまでのところとても良いですが、これらのウィジェットビューはiframe内にのみ読み込まれ、直接は読み込まれないようにするにはどうすればよいですか?特定のビューのみをiframeでレンダリングできるようにすることはできますか?

これは許されるべきではない、直接ブラウザにhttp://www.example.com/widgets/example

<iframe src="http://www.example.com/widgets/example"> 

しかし、タイピングを動作するはずです。

レールでこれを達成するにはどうすればよいでしょうか?

+0

は、これらのウィジェットがモデル内に保存されていますか? – DMH

+0

私はウィジェットを提供するいくつかのモデルを持っていますが、それが役立っているならwidgets_controllerの下にすべてありますか? – Cojones

+0

これは100%あなたがあなたのiframeにparamを渡して、 'WidgetsController'に' before_filter'を渡してparamsの存在をチェックすることを偽証するものではありません。それが存在しない場合は、あなたが選んだページにリダイレクトされます。あなたが望むなら、これをもっと答えとして書くことを幸せにしてください。 – DMH

答えて

0

はあなたのページのウィンドウは親ウィンドウと同じであるかどうかを確認するために最初に必要がある場合はiframe内部ではない、あなたのページ:

あなたはDOMのすべてを削除することができない場合は、
function inIframe() { 
    try { 
    return window.self !== window.top; 
    } catch (e) { 
    return true; 
    } 
} 

// Pure JS something like 
var myNode = document.getElementById("foo"); 
myNode.innerHTML = ''; 
// jQuery 
$('html').empty(); 

か、そのは、IFRAMEの外に見ることを許可されていないと言う、空のページにリダイレクトすることができます

window.location = "http://www.yourul.com/empty_page"; 

Referring to

+0

これを解決するための方法はありませんが、JavaScriptを使用するだけです。 – Cojones

+0

はい、サービス側では、チェックを行い、Cookieを設定することはできますが、このデータはサーバーへの次回の要求から開始します。 –

+0

ええ、あまりにも悪いですが、とにかく助けてくれてありがとう! – Cojones

関連する問題