2009-02-05 51 views
2

我正在寫一個書籤,即一個包含JavaScript而不是URL的書籤,我有一些麻煩。事實上,我不記得我如何將頁面內容作爲字符串獲取,因此我可以應用正則表達式來查找我想要的內容。你能幫我解決這個問題嗎?如何在javascript中獲取頁面的完整內容作爲字符串?

在任何人建議之前,我不能使用getElementBy(Id/Name/Tag),因爲我正在尋找的數據是HTML註釋和內部標記,所以我不認爲這會起作用。

謝謝。

回答

8

您可以通過訪問:

document.body.innerHTML 
+0

該死的innerHTML,我怎麼會忘記呢?謝謝。 – Antoine 2009-02-05 17:40:56

1

這樣我就可以申請一個正則表達式來找到我想要的東西

做。不。使用。正則表達式。至。解析。 HTML。

特別是當瀏覽器已經爲你解析它!來吧!

我在尋找的數據是HTML註釋的

你可以非常清楚抓取評論含量超出了DOM的。例如。

<div id="mything"><!-- la la la I'm a big comment --></div> 

alert(document.getElementById('mything').firstChild.data); 

如果你需要搜索comment元素的DOM:

// Get comment descendents 
// 
function dom_getComments(parent, recurse) { 
    var results= []; 
    for (var childi= 0; childi<parent.childNodes.length; childi++) { 
     var child= parent.childNodes[childi]; 
     if (child.nodeType==8) // Node.COMMENT_NODE 
      results.push(child); 
     else if (recurse && child.nodeType==1) // Node.ELEMENT_NODE 
      results= results.concat(dom_getComments(child)); 
    } 
    return results; 
} 
+1

感謝您的信息,但我正在編寫的代碼是書籤,書籤中的一行代碼。 IE中的bookmarklets僅限於470個字符,因此我的目標是最大限度地簡化和簡化。 – Antoine 2009-02-10 16:49:37

相關問題