2010-09-06 57 views
1

我是初學者,但我需要一個腳本,可以幫助我在一些頁面。 我需要一個腳本來對頁面中的文本進行分析,如果有我搜索它的單詞顯示一個popoup,如果不是什麼都不做。 這裏的代碼,但它不適用於Firefox,因爲文本範圍功能只適用於IE瀏覽器(可能贏得工作,因爲我不能做JavaScript)。 有人告訴我使用tostrign功能,但我不知道如何:P 所以,如果你能請更改它,這樣它可以工作,這將是真正偉大的。在firefox + greasemonkey中的Javascript文本範圍

document.body.onload = cerca(); 
    function cerca() { 
    Range = document.body.createRange(); 
    campo = toString(); 
    var c = campo.findText("ciao"); 
    if(c){ 
     alert("Corrispondenza Trovata") } else {alert("nada"); } 
    } 

非常感謝你:)

+0

你只是想自動知道這個詞是否出現在整個頁面上?有很多簡單的方法來做到這一點。還是你想通過選擇/突出顯示一系列文本來激活測試? – 2010-09-06 22:36:55

回答

2

Firefox有Range!而非TextRange秒。如果您只想檢查頁面中是否存在特定的文本,而不是突出顯示它,則以下內容將在Firefox中運行。之所以使用該Selection對象是一個範圍涵蓋整個身體會包括身體內的所有文本節點,包括內部<script>元素,而Selection對象上調用toString()的結果僅包括可見的文字,這是你想要的。還要注意,這個函數會清除當前選擇(如果存在的話);如果這對您是個問題,那麼您可以存儲並稍後恢復所選範圍。

function visibleTextContains(str) { 
    var range = document.createRange(); 
    range.selectNodeContents(document.body); 
    var sel = window.getSelection(); 
    sel.removeAllRanges(); 
    sel.addRange(range); 
    var visibleText = sel.toString(); 
    sel.removeAllRanges(); 
    return visibleText.indexOf(str) > -1; 
}