カラーボックスで開かれていない場合に誰にもアクセスされたくないページがあります。それらを「/dashboard/」にリダイレクトしたいと思います。
明確にするために、ページに直接アクセスする場合(iframe /カラーボックスではない)、リダイレクトするか、ページをロードします。
javascriptを使用して、現在のページがトップページであるかどうかを確認できます。
if (top == self) {
top.location = '/dashboard/';
}
ただし、もちろんjavascriptをオフにすることもできます。
アイテムをiframeで開いている場合、これは実際には不可能です。ブラウザは、ページに直接アクセスした場合と同じようにiframeをロードするためです。
ページの読み込み時に数値を生成し、それをGET変数としてiframeに渡すというナンスタイプの処理を実行できます。これにより、渡された値がSESSIONに格納されている値と同じであるかどうかが確認されます。セッション1が存在しないか、異なる場合は、リダイレクトします。同じ場合は、セッションから値を削除し、通常どおりにロードします。
それがどれだけうまくいくかはわかりませんが。壊れている例としては、ユーザーがiframeを更新しようとすると、代わりに、現在のWebページ(/ dashboard /)がiframeに埋め込まれる可能性があります。
したがって、単純な答えはノーです。ある程度の複雑さと人々の経験を壊すリスクがなければ、それは不可能です。
これはjqueryでの呼び出しを防ぐ方法ですが、なぜこれが必要なのかわかりません。ユーザーは簡単にリンクに直接アクセスできます。一時的な修正が本当に必要な場合は、リンクの親が存在することを確認できます。
$('a').click(function(e){
if($(e.target).parent('#colourBoxID').length > 0){
//go to page
}
else{
//redirect
}
});