0
這可能是一個簡單的修復,但我無法弄清楚。基本上我打開了一個外部網頁,我想將該網頁上的每個單詞(只是沒有標籤或其他內容)存儲到一個數組中,這樣我就可以輸出每個單詞在頁面上出現多少次。如何統計外部網頁中的每個單詞?
這是外部頁面我使用的測試:
<html>
<body>
<p> Hello world! <br/>
<a href = 」link.html」> Click <b> here </b> </a>
<br/> Goodbye world!
</p>
</body>
</html>
而且我的輸出是這樣的:
點擊:1次 再見世界!:1次, Hello world!:1次, 這裏:1次
我靠近,我只需要 「再見世界!」和「你好世界!」在空間分裂,但我找不到辦法做到這一點。
這裏是我的代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var w;
function openFile(url) {
w = window.open();
w.location = url;
}
var mainArray = [];
var pre;
function retrieveText() {
pre = document.getElementById("count");
getwords(w.document.body);
count();
}
function count() {
mainArray.sort();
var current = null;
var cnt = 0;
for (var i = 0; i < mainArray.length; i++) {
if (mainArray[i] != current) {
if (cnt > 0) {
document.write(current + ' : ' + cnt + ' times<br>');
}
current = mainArray[i];
cnt = 1;
} else {
cnt++;
}
}
if (cnt > 0) {
document.write(current + ' : ' + cnt + ' times');
}
}
function getwords(node) {
mainArray = w.document.body.innerHTML.replace(/^\s*<[^>]*>\s*|\s*<[^>]*>\s*$|>\s*</g,' ').split(/<[^>]*>/g);
}
</script>
</head>
<body>
<p>Filename: <input id = "url" name="url" size=15 type="Text"/></p>
<a href="javascript:openFile(document.getElementById('url').value)">
Open document</a>
</br>
<a href="javascript:retrieveText()">Retrieve text</a><br/>
</br>
<ul id ="arrlist"></ul>
</body>
</html>
我只是改變了getwords()像你說的,現在mainArray看起來這對我來說:「[對象」,「HTMLBodyElement]」] –
我嘗試做一些修改例如,因爲我的Chrome不允許讀取本地文件。對於你的情況,試試這個函數只有一行:** mainArray = node.innerText.replace(/ \ s +/g,「,」)。split(「,」); ** – Alexey
工作!謝謝你,我的朋友:)你能編輯你發佈的答案,所以我可以把它標記爲已解決? –