2010-06-22 49 views
3

如果我通過JavaScript在頁面中添加內容,它可以通過搜索引擎蜘蛛抓取並可通過屏幕閱讀器訪問。如果我通過JavaScript在頁面中添加內容,它將被搜索引擎蜘蛛抓取

對於example this

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); 
    } 
}); 

編輯:我想從搜索引擎,但在同一時間隱藏此通過屏幕閱讀器訪問的保持是這可能嗎?

回答

2

這取決於搜尋器,但不要指望大多數機器人來解釋Javascript。

2

簡答題,可能不是。但是,Google一直在變得越來越複雜,所以我懷疑他們實際上將Javascript作爲索引過程的一部分。

有沒有特別的理由這樣做?如果可能的話,我建議儘可能使用邏輯服務器端,然後您知道您的HTML可以被搜索引擎讀取。

+0

但是這個生成的代碼顯示在呈現的視圖源代碼和螢火蟲中也是 – 2010-06-22 03:59:59

+0

是的,Firebug會在*完全呈現在瀏覽器中之後顯示代碼DOM。我不知道Google是否將其作爲索引過程的一部分。如果您想確定,請儘可能從服務器發送HTML。 我的意思是,在你的例子中,HTML的特定位置對於搜索引擎來說不會有意思,所以它不是什麼大不了的事。但如果有真實的內容,我會做上述。 – 2010-06-22 04:10:03

+0

谷歌通常不會執行JavaScript(雖然他們確實使用了一些啓發式方法來試圖弄清楚發生了什麼)。在這種特殊情況下,他們可能只是看到JavaScript中的字符串中的嵌入式HTML並將其編入索引。就我個人而言,我同意這個答案:這樣做與JavaScript沒有什麼優勢,除了它不適用於JavaScript關閉的人(這是一個缺點,當然)... – 2010-06-22 04:19:15

1

Re:動態生成的內容(在瀏覽器上)是否可以被搜索引擎抓取?通常,不。

但谷歌已經發明瞭一種方法來解決這個問題。請參閱ajax crawling

注意:他們通過使用表示動態頁面的不同狀態的各種查詢參數來抓取您的URL。他們不會試圖在您的頁面上運行js。

0

不,大多數網絡爬蟲不執行JavaScript,舊版屏幕閱讀器也不讀取它。你最好的選擇是隻將Javascript用於演示目的,並使用邏輯服務器端(PHP,Ruby,.NET等)和一些CSS魔術來實現你想要在內容上做什麼。如果您關注網頁抓取工具和屏幕閱讀器,並且僅將JavaScript用於演示文稿,則始終要通過服務器端插入內容。或者,您可以爲屏幕閱讀器使用Flash和JavaScript嗅探器,將用戶重定向到不依賴動態內容的替代頁面。

相關問題