3

如果我通过 JavaScript 在页面中添加内容,搜索引擎蜘蛛可以抓取它并通过屏幕阅读器访问它。

例如这个

var tip = "<p>Most computers will open PDF documents ";
tip += "automatically, but you may";
tip += "need to download <a title='Link to Adobe website-opens in a new window'";
tip +=" href='http://www.adobe.com/products/acrobat/readstep2.html'  
               target='_blank'>Adobe Reader</a>.</p>";

$(document).ready(function(){

    //IF NUMBER OF PDF LINKS IS MORE THAN ZERO INSIDE DIV WITH ID maincontent
    //THEN THIS WILL PUT TIP PARAGRAPH AS LAST CHILD OF DIV
    if($("div#maincontent a[href*='/pdf']").length>0){
    $("div#maincontent").children(":last-child").after(tip);
    }
});

编辑:我想从搜索引擎中隐藏它,但同时让屏幕阅读器可以访问它是否可能?

4

4 回答 4

2

这取决于爬虫,但不要指望大多数机器人会解释 Javascript。

于 2010-06-22T03:36:37.797 回答
2

简短的回答,可能不是。但是,谷歌一直在变得越来越复杂,所以我怀疑他们实际上将 Javascript 渲染为索引过程的一部分。

这样做有什么特别的理由吗?如果可能,我建议在服务器端执行此逻辑,然后您就知道您的 HTML 可以被搜索引擎读取。

于 2010-06-22T03:37:55.860 回答
1

回复:动态生成的内容(在浏览器上)是否可以被搜索引擎抓取?

通常,不会。

但谷歌发明了一种解决问题的方法。看ajax爬取

注意:他们通过使用代表动态页面不同状态的各种查询参数来抓取您的 url。他们不会尝试在您的页面上运行 js。

于 2010-06-22T03:38:51.223 回答
0

不,大多数网络爬虫不执行 JavaScript,旧的屏幕阅读器也不读取它。您最好的选择是仅将 Javascript 用于演示目的,并使用逻辑服务器端(PHP、Ruby、.NET 等)和一些 CSS 魔法来实现您在上面尝试对内容执行的操作。如果您担心网络爬虫和屏幕阅读器,请始终通过服务器端插入内容,并仅使用 JavaScript 进行演示。或者,您可以为屏幕阅读器使用 Flash 和 JavaScript 嗅探器,将用户重定向到不依赖动态内容的备用页面。

于 2010-06-22T03:46:25.810 回答