在不改变DOM的情况下注入内容/ HTML

时间:2014-03-21 20:12:28

标签: javascript jquery html dom

编辑#2

我能够从Google支持部门找到答案,请在此问题下方阅读我的答案。

编辑#1

我认为这更像是一个搜索引擎优化问题,而不是一个技术问题(虽然它在某种程度上是技术问题),所以我会在其他地方找到答案,并在我有分享的时候发布答案。


首先让我说我不是jQuery / JavaScript专家,所以对你们中的一些人来说,这个问题可能听起来很愚蠢。

我需要在我的一个页面中“注入”内容/ HTML,但不需要更改DOM。请注意,我说INJECT不是REPLACE或ADD。这是出于搜索引擎优化的原因,因为这些内容不会被搜索蜘蛛索引。

另一个开发人员实施的当前解决方案是使用文本创建一堆图像,所以现在该网站仅为该部分提供了60多个HTTP请求。呀。

无论如何,我认为解决方案是通过包含该内容的JavaScript文件在页面上注入此内容,这样在我的页面标记中我只有<script src="js/testimonials.js"></script>例如,浏览器将能够执行此文件并在其中显示内容,而搜索蜘蛛将无法抓取该内容,因为它位于JavaScript文件中。

我尝试过jQuery的.html();方法,但当然JS文件中的HTML放在实际的页面上,从而使搜索蜘蛛可以索引该内容。这是我最初的想法,但这是不正确的。请阅读下面这个问题的答案。

这就是我的尝试:

$(function () {
  $('.testimonials').html('test');
});

我无法在SO和网络上找到解决方案。

非常感谢任何帮助实现这一目标。

提前致谢,

4 个答案:

答案 0 :(得分:1)

你不能注射&#34;将HTML放入文档而不改变DOM。 HTML文档(网页)是浏览器和蜘蛛的DOM视图。

答案 1 :(得分:1)

如果我的理解是正确的,“不改变DOM”并不是真的你关心;而是隐藏JavaScript执行抓取工具中的一些内容。

我最初的反应:我认为你试图隐藏在抓取工具中的任何内容都应该被隐藏,因为它只适用于某些用户。解决方案很简单:仅向签名用户显示。如果这听起来不是一个好的解决方案,我建议您重新考虑是否存在完全被排除在排名之外的风险。 (见cloaking。)

然而,如果您想要隐藏 的内容,则可能需要推迟提取内容,直到执行用户操作为止。将其设置为在滚动或鼠标鼠标上加载。

答案 2 :(得分:1)

有一个robots.txt文件,指示搜索机器人不会搜索您的网页内容。是的!,坏的人绕过了这条规则。但是谷歌抓取工具不会索引。

此外,您可以在身份验证后访问您的推荐页面。例如,我的Gmail内容不能是SEO或其他用户搜索。

答案 3 :(得分:0)

搜索了很长时间后,我终于从Google支持中找到了此页面: Can Google Site Search index JavaScript content on my pages?

这正是他们在该页面中所说的...简答:不,它无法索引JavaScript中的内容:

"Google Custom Search can't index content contained in JavaScript. The general rule for making sure that a web page can be indexed by Google is to ensure that all of the text that needs to be indexed is visible in a text-based browser, or a browser with JavaScript turned off."

所以我最初的假设是正确的。

编辑:&#34; Google自定义搜索&#34;是您在网站上提供的搜索服务,它不是www.google.com。但是,我认为Google不会使用两个单独的引擎,一个用于Custome Search,另一个用于www.google.com。但是,是的,这只是一个假设。

-

另一方面,我错了一些东西:DOM没有改变。 Ed Heal是对的,当浏览器读取JavaScript文件中的内容时,DOM 更改。但同样,即使在此之后,内容也不会被搜索蜘蛛索引。

svidgen指出了一些有趣的东西,&#39;隐藏#39;我没有想到这一点。

在阅读了Google的隐形示例后......:

  1. 向搜索引擎提供HTML文本页面,同时向用户显示图片页面或Flash
  2. 仅当请求页面的用户代理是搜索引擎而不是人类访问者时才将文本或关键字插入页面
  3. ...我的解决方案就是通过JavaScript提供推荐书,那些没有JS的访问者只是看不到内容,这对我们来说很好,因为推荐书不属于核心内容的一部分。页面,他们只是内容增强剂。当他们得到推荐书时,该页面的主要信息已经说过了,所以内容策略没有受到伤害。

    svidgen提到的另一件听起来非常有趣的事情就是在执行用户操作后获取内容,这很有意义,肯定会考虑你的建议。

    如果我有关于此的更多信息,我一定会用它来更新这篇文章。

    由于每个人都提出了非常有价值的意见/意见,所以每个人都要投票。

    感谢大家的帮助!非常感谢。