2010-09-06 69 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; 
}