fancybox iframe内容和谷歌搜索

时间:2012-09-02 19:09:55

标签: jquery iframe fancybox fancybox-2

我的网站中有一个页面列出了所有项目的大拇指。单击特定的拇指(项目)时,Fancybox会在iframe中加载项目的详细信息。一切都很棒! (iframe中的内容不包括导航,标题和其他网站元素。)

我遇到的问题是谷歌搜索结果页面 - 谷歌索引所有详细信息页面,现在当用户点击谷歌搜索结果链接时,详细信息内容页面将在浏览器中打开(而不是Fancybox iframe)。这很糟糕,因为详细信息页面不包含导航页面。

任何用户友好的解决方案?

2 个答案:

答案 0 :(得分:1)

如果您对那些未被Google编入索引的网页感到满意,那么您可以在链接中添加rel =“nofollow”:

此处有更多详情: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=96569

答案 1 :(得分:0)

正如我在评论中提到的,您需要在每个“详细信息”页面中包含一个脚本来嗅探URL并检测页面是否在新窗口中打开(首页),如果是这样重定向到主页面使用修改后的URL(例如使用hash),允许从主页面打开fancybox中的“详细信息”页面。

因此,您可以在每个“详细信息”页面中包含此脚本:

<script type="text/javascript">
var isWindow = self == top; // returns true if opened in a new window, otherwise it migh be inside an iframe
if(isWindow){ 
 // alert("this page was opened in a new browser window");
 // then redirect to main page and add hash "detailedXX"
 window.location = "{URL}/mainpage.html#detailed01"
}
</script>

detailed01更改为每个“详细信息”页面的不同值。

然后在主页面中,您可以链接到每个详细信息页面,如

<a id="detailed01" class="fancybox" href="detailed01.html">Open project detail page 01 in fancybox</a>
<a id="detailed02" class="fancybox" href="detailed02.html">Open project detail page 02 in fancybox</a>

注意我在每个锚点都包含ID,与我们将在重定向到主页时使用的hash匹配。

然后您的fancybox脚本可以是:

<script type="text/javascript">
var thisHash = window.location.hash;
$(document).ready(function() {
 if(window.location.hash) {
  // get the URL without hash so we can restore it if needed
  var thisWindowLocation = window.location;
  var thisWindowLocationSplit = String(thisWindowLocation).split("#")[0];
  $(thisHash).fancybox({
   width: 800,
   height: 320,
   fitToView: false,
   autoSize : false,
   type: 'iframe',
   afterClose : function(){
    // returns URL to main page with no hash
    window.location = thisWindowLocationSplit
   }
  }).trigger('click');
 }
// fancybox for normal main page operation
 $(".fancybox").fancybox({
  width: 800,
  height: 320,
  fitToView: false,
  autoSize : false,
  type: 'iframe'
 });
}); // ready
</script>

我设置了DEMO here

此演示打开两个“详细”页面:

http://www.picssel.com/playground/jquery/detailed01.htmlhttp://www.picssel.com/playground/jquery/detailed02.html

如果您尝试直接打开它们,则会重定向到calling page并在fancybox中打开