0

我正在使用 Fancybox 1.3 我需要能够将 www.domain.com/inner.html 重定向到 www.domain.com/index.html 并在 Fancybox 中打开 inner.html 页面。我怎样才能简单地做到这一点?谢谢你。

4

1 回答 1

1

1)。您需要在里面编写一个脚本inner.html来评估它是否已在fancybox 中打开。如果在fancybox外部打开,它将重定向到....但如果来自重定向,index.html它还需要告诉打开fancybox,否则应该正常打开(不是fancybox)index.htmlindex.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>

请记住,为了评估parentfancybox 变量(如inner.html),两者inner.htmlindex.html应该属于同一个域。更多信息请查看同源政策

于 2012-06-26T19:35:57.207 回答