2009-07-08 51 views
2

私はIFrameからロードされたときにのみアクセスまたはロードする必要があるasp.netページのセットを持っています。ブラウザのアドレスバーから直接ページにアクセスしようとすると、ページが全く表示されないか、またはメッセージがユーザに表示されるべきではありません。ページをIFrame内でのみ強制的に読み込む方法は?

クッキーとセッションを使用しようとしましたが、Cookie /セッションが作成されると、IFrameをバイパスしてブラウザから直接ページにアクセスできるため、効果的ではありません。

私の開発プラットフォームは、asp.net 2.0 +、VS2008で、C#の2.0+

答えて

5

は、headタグ内のスクリプトを入れた方が良いです数回の1の例です。

<html> 
<head> 
    <title>sandBox</title> 
    <script type="text/javascript"> 
     if (frameElement == null) { 
      //change location or close 
      window.location = "http://stackoverflow.com"; 
      // or window.close(); 
     } 
    </script> 
</head> 
<body> 
content goes here 
</body> 
</html> 
+0

どうもありがとう、非常に役立ちます。 – JoeW

+0

body onLoadハンドラで呼び出された関数の中にifステートメントを置く必要がありました。さもなければこの解決策は魅力のように働いた – rotard

0

あなたタグの中にこれを試してみてください:

<script> 
if(window.self !== window.top); //inside an iframe 
else window.location = "http://stackoverflow.com/" // Outside 
</script> 
関連する問題