2013-10-18 29 views
0

如果我提出這個問題不好,我會提前道歉;我對網頁編碼相當陌生。使用JavaScript掃描動態呈現的元素?

我的目標是使用JavaScript來掃描網頁並確定是否存在特定的字符串。這裏的困難在於頁面是動態呈現的,所以有問題的字符串將會在代碼中出現永不

如果字符串在頁面上呈現,該字符串是否會出現在DOM中?如果我要掃描DOM,我會在那裏找到它,如果有,還有什麼特別的考慮要考慮?

本質上,我正在尋找一種簡單的方法來掃描已在頁面上呈現的文本,而不是源代碼。這一定是可能的,因爲我的瀏覽器的「在頁面上查找」功能在動態呈現的頁面上工作。有沒有辦法通過瀏覽器API本身訪問頁面上的呈現元素? (我使用的瀏覽器。)

+0

是的,這可以通過DOM。 –

回答

1

試試這個:

var stringToSearchFor = 'foobar'; 
var searchThisString = document.body.innerText || document.body.textContent; 
var found = (searchThisString.indexOf(stringToSearchFor) >= 0); 

此提取從頁面中的文本,忽略所有標記,然後做的結果字符串的簡單掃描。

在某些版本的FireFox中,這將包含內聯腳本標記的內容。

+0

感謝您的回覆。即使字符串不在源代碼中,這也能工作嗎?我明白這種方法會從源文件中刪除標記,但即使如此,我的字符串仍然不在剩餘的文本中。 –

+0

是的,這應該抓取DOM中的_current_文本,包括頁面加載後的任何修改。 –

+0

啊,我明白了。所以這個函數將從頁面代碼產生的HTML中去掉標記。說得通。非常感謝你! –