我正在使用 Fancybox 1.3 我需要能够将 www.domain.com/inner.html 重定向到 www.domain.com/index.html 并在 Fancybox 中打开 inner.html 页面。我怎样才能简单地做到这一点?谢谢你。
问问题
1301 次
1 回答
1
1)。您需要在里面编写一个脚本inner.html
来评估它是否已在fancybox 中打开。如果在fancybox外部打开,它将重定向到....但如果来自重定向,index.html
它还需要告诉打开fancybox,否则应该正常打开(不是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)。现在,在里面index.html
你需要评估页面是否已经从重定向的结果中打开(URL 有hash
“#inner”),所以它会inner.html
在页面加载时在 fancybox 中打开页面,否则它将正常打开(如果 URL除了“#inner”之外没有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
应该属于同一个域。更多信息请查看同源政策。
于 2012-06-26T19:35:57.207 回答