我正在使用Fancybox 1.3 我需要能够将www.domain.com/inner.html重定向到www.domain.com/index.html并在Fancybox中打开inner.html页面。我怎样才能做到这一点?谢谢。
答案 0 :(得分:1)
1)。你需要在inner.html
内编写一个脚本来评估它是否已在fancybox中打开。然后,如果在fancybox外面打开,它将重定向到index.html
....但如果来自重定向,它还需要告诉index.html
打开fancybox,否则index.html
应该正常打开(不是fancybox )
在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)。现在,在index.html
内,您需要评估页面是否已从重定向的结果中打开(URL具有hash
“#inner”),因此它将打开页面inner.html
在页面加载的fancybox中,否则它将正常打开(如果URL没有hash
- 或者 - hash
而不是“#inner”)
此外,你必须加载所有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
都应归属于同一个域。查看same origin policy了解更多信息。