0

私は、メニューを持つデフォルトのページとユーザーがメニュー項目をクリックすると、ASP.NET 3.5イントラネットWebサイトを持っていますデフォルトのページに埋め込まれたiframeにそのメニュー項目のページを表示します。ユーザーがブラウザのページのURLを直接入力すると、すべてのコンテンツページにメニューがないため、デフォルトのページにリダイレクトしたいと考えています。 (マスターページではこの問題は解決しますが、ここでマスターページを使用することはできませんし、そのような詳細には行きたくありません)。リダイレクトするかどうかを決めるために、URLを入力するか、メニュー項目をクリックして、ユーザーがページに直接アクセスしたかどうかを調べる方法を教えてください。これは見つけることが可能ですか? btwこれはイントラネットサイトであり、ログインは必要ありません。前もって感謝します。あなたのフレーム(またはフレームマスターページ)にこれを入れユーザーがURLを入力して直接ページに移動すると、ユーザーをデフォルトのページにリダイレクトする

+0

なぜiframeを使って始めるのですか?デザインが悪い。マスターページを使用できない場合は、メニューや他の一般的なコンポーネントをユーザーコントロールにしてページに追加するよりも、 – epascarello

+0

マスターページを使用すると、別のページに移動するたびにルートに崩壊するサードパーティのメニューコントロールを使用しています。状態を維持するためにメニューコントロールを修正することは簡単な作業ではなく、実際のページURLを隠したかったのです。私はURLルーティングを使用することができますが、それは私の単純なアプリケーションを複雑にします。最終的に私はiframeと一緒に行くことにしました。私はすべてのページにユーザーコントロールとしてメニューを追加するのは良いとは思わない。お返事をありがとうございます。 – RKP

答えて

0

のiFrameが良い手法ではありませんbeacuseあなたは、あなたの問題のためMasterPagesを使用する必要があります。 しかし、あなたはコンテンツページではJavaScriptリッテ・スニペットでそれを試みることができる:

<script type="text/javascript"> 
if (top == self) 
    window.location = "/index.html"; 
</script> 

あなたは、単にチェックし、ロードされたページはあなたのiFrameと同じ場合。これが当てはまる場合は、iFrameが直接ロードされます。

+0

これが機能しました。ありがとう。私のすべてのコンテンツページはマスターページを使用するので、このコードをマスターページに入れます。ただし、マスターページにはメニューがありません。メニューはiframeを持つデフォルトページにあり、iframeに表示されているすべてのコンテンツページはマスターページを使用して共通の機能を集中管理します。これは良いデザインではありませんが、私はこの問題を解決してURLを隠すためにこの手法を選択しました。 – RKP

1

<body onload="CheckTop()"></body> 

<script type="text/javascript"> 
    function CheckTop() 
    { 
     if (window == window.top) window.location = //topurl, pilot page 
    } 
</script> 
+0

返事ありがとう、両方の答えは同じで、私は答えとして両方をマークすることはできません。 – RKP

関連する問題