将内页重定向到主页并在Fancybox中打开内页

时间:2012-06-25 07:44:42

标签: jquery mod-rewrite redirect fancybox

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

1 个答案:

答案 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.htmlindex.html都应归属于同一个域。查看same origin policy了解更多信息。