I'm using Fancybox 1.3 I need to be able to redirect www.domain.com/inner.html to www.domain.com/index.html and open the inner.html page in Fancybox. How can I achieve this simply? Thank you.
1 に答える
1)。inner.html
ファンシーボックス内で開かれたかどうかを評価するスクリプトを内部に記述する必要があります。次に、fancybox の外で開いた場合はリダイレクトします .... しかし、リダイレクトから来ている場合は fancybox を開くindex.html
ように指示する必要もあり、それ以外の場合は通常どおりに開きます (fancybox ではありません) 。index.html
index.html
内部inner.html
には、少なくとも次のものが必要です。
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
if(!parent.jQuery().fancybox) {
alert("opened OUTSIDE of fancybox");
// redirect to index.html and set the hash value to "inner"
window.location = "http://domain.com/index.html#inner"
}
</script>
2)。ここで、リダイレクトの結果からページが開かれたかどうか (URL に「#inner」がある)を内部index.html
で評価する必要があるため、ページの読み込み時に fancybox でページが開かれます。そうでない場合は、通常どおりに開きます (URL が持っていない、または「#inner」以外を持っている)hash
inner.html
hash
hash
また、すべての fancybox js および css ファイルと、少なくとも次の html をロードする必要があります。
<a class="fancybox" href="http://domain.com/inner.html">open inner page</a>
そしてこのスクリプト:
<script>
$(document).ready(function(){
$(".fancybox").fancybox({
"width": 830, // or whatever
"height": 320,
"type": "iframe"
});
// check hash
if(window.location.hash){
var url = window.location.hash, thisHash = new Array();
// extract hash from URL
thisHash = url.split("#",2);
if(thisHash[1] == "inner") {
alert("the hash is inner");
// hash = "inner" so open "inner.html" in fancybox
$(".fancybox").trigger("click");
}
}
});//ready
</script>
parent
fancybox 変数を ( のように)評価するには、とinner.html
の両方が同じドメインに属している必要があることに注意してください。詳細については、同じオリジン ポリシーを確認してください。inner.html
index.html