後通過使用JavaScript或jQuery的,我想如果有一個字搞清楚,說「卡薩布蘭卡」,可在網頁上?在搜索頁面上的字一個AJAX調用
我正在瀏覽的網頁,使一個Ajax調用,它改變了頁面的內容。所以我應該在ajax調用後搜索單詞「casablanca」。
到目前爲止,我已經找到了最好的辦法是:
window.find('casablanca');
但這種代碼突出顯示了字,這是我不想要的。
有沒有更好的方法?
謝謝!
後通過使用JavaScript或jQuery的,我想如果有一個字搞清楚,說「卡薩布蘭卡」,可在網頁上?在搜索頁面上的字一個AJAX調用
我正在瀏覽的網頁,使一個Ajax調用,它改變了頁面的內容。所以我應該在ajax調用後搜索單詞「casablanca」。
到目前爲止,我已經找到了最好的辦法是:
window.find('casablanca');
但這種代碼突出顯示了字,這是我不想要的。
有沒有更好的方法?
謝謝!
這裏有一個快速和編程的方式來確定當前的HTML頁是否包含特定關鍵字:
function pageContains(str) {
return document.body.innerHTML.toString().indexOf(str) > -1;
}
的jsfiddle:https://jsfiddle.net/shj4LwqL/
請注意,對於關鍵字上面的代碼搜索在頁面的body
標籤中,如果您在頁面正文中包含JavaScript,並且您的關鍵字在JavaScript中被寫爲字符串,那麼您將會得到誤報。如果你想一個特定元素中進行搜索,而不是,您可以使用下面的變體:
function elementContains(el, str) {
return el.innerHTML.toString().indexOf(str) > -1;
}
僅檢索內容,而不是在標籤等:
function searchInPage(val) {
var allElements = document.getElementsByTagName('*');
for(var i = 0; i < allElements.length; i++) {
var node = allElements[i].firstChild;
//Is it a text node?
if(node !== null && node.nodeType === 3) {
if(node.nodeValue == val) return true;
}
}
return false;
}
未經測試它顯示你要做到這一點。
嘗試使用.contents()
,.is()
返回Boolean
;替代.filter()
的.is()
返回包含選定文本元素,如果true
,false
如果沒有找到在選擇的文本節點
var res = $("body").contents().is(function(i, el) {
return $(":contains(casablanca)").is(el)
}); console.log(res)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="post-text" itemprop="text">
<p>By using JavaScript or jQuery, I am trying to figure out if a word, say "casablanca", is available on the page?</p>
<p>The page I am working on makes an ajax call which changes the content of the page. So I am supposed to search for the word "casablanca" after the ajax call.</p>
<p>The best way I have found so far is:</p>
<pre class="default prettyprint prettyprinted"><code><span class="pln">window</span><span class="pun">.</span><span class="pln">find</span><span class="pun">(</span><span class="str">'casablanca'</span><span class="pun">);</span></code></pre>
<p>But this code highlights the word, which is something I don't want.</p>
<p>Is there a better way?</p>
<p>Thank you!</p>
</div>
什麼是你期望,而不是強調它的行爲? – Anchor
@Anchor他說:「弄清楚,如果在網頁上不存在的話,不強調它」,所以我認爲他只是想要一個布爾 –
'document.body.innerHTML.match(「卡薩布蘭卡」)' –