使用jquery或iframe加载外部内容?

时间:2011-01-06 22:36:57

标签: javascript jquery html seo

HIHO,

现有的网站需要包含在另一个网站中,如下所示:

a.mysite.com

我需要在

中从此网站获取内容

www.mysite.com

网站...

由于我需要访问iframe的内容,因此同源策略会产生问题。 我所做的是在Apache上配置mod_proxy以代理传递来自

的所有请求

www.mysite.com/a

a.mysite.com

这样可以正常工作......但我的问题是我不确定包含这些页面的最佳方法是什么。

1。想法

由于iframe的内容是一个功能齐全的网站,顶部导航...左侧导航等....我需要更改页面模板,只显示内容框,以便能够集成该页面iframe。

2。想法

我可以通过JQuery.load()加载内容所在的DIV,并将其集成到我的网站中。

完成此类任务的最佳方法是什么?从SEO的角度看这两种想法有多糟糕?

3 个答案:

答案 0 :(得分:2)

除非涉及重大返工,否则最佳解决方案是将两者合并为服务器端的单个HTML页面(使用服务器端包含)。

<强>优点

  • SEO没有问题,因为它作为单页提供。 iFrame中的内容和通过AJAX加载的内容(HTML中的相关链接)遍历,但只有链接,而不是内容本身与主页相关联。请参阅:http://www.straightupsearch.com/search-marketing/best-practices/seo_iframes_a_g/
  • 加载页面速度加快 - 您的任何建议都会导致首页加载主页面,然后再加载其他内容。
  • 不依赖Javascript - 如果不支持/启用javascript,您的第二种方法将完全失败。
  • 仅包含所有JS和CSS一次 - 您的第一个方法将要求在每个页面的<head>中复制这些内容。如果您希望实现站点“a”的完全集成,这更具有长期优势。但是,最初可能是一个缺点,见下文。

<强>缺点

  • 可能会导致两个页面之间的脚本和CSS冲突。但是,第二种方法存在同样的问题。

如果您必须在您建议的两个选项中的任何一个之间进行选择,我会选择其他人建议的第二个选项。永远不应该通过Ajax加载大量的静态内容,并且在这种情况下不会给您带来额外的好处。至少iFrames保证不会发生JS和CSS冲突。

答案 1 :(得分:1)

使用第二种方法(jQuery.load),如果您正在使用HTML5,对于支持History API的浏览器,您可以将URL更改为该div的内容。

查看https://github.com/blog/760-the-tree-slider以获取github如何为其树滑块执行此操作的示例。

编辑:

我不确定如何使用src指向您自己的域的iFrame影响搜索排名但最多只是一个灰色区域。我会假设可能有一些pagerank会从父级流向孩子,但我不知道如果一个博客链接到你的页面,iframe指向另一个页面,它将如何工作。这将是Webmaster Help Forum

提出的一个非常好的问题

答案 2 :(得分:0)

总是对i​​frame拒绝。一直是jQuery + Ajax。