我想创建一个书签,它会对网页上的所有文字进行计数,然后在绝对定位的div中显示从大多数到最少的结果。
每次google搜索我都会谈到计算表单或文本区域或已知div id中的单词总数。那不是我想要的。我想要每个/ w出现在整个网页上的次数。
我知道足够的javascript知道我不知道该怎么做。
答案 0 :(得分:2)
这样的事情应该有效:
function countWordFrequency() {
var freq={};
// Traverse the DOM looking for text nodes.
recurseTextNodes(function(textNode) {
// Split the text into words, removing punctuation.
var words = textNode.data.replace(/[^\w\s]/g, '').split(/\s+/)
, len = words.length;
// Count the word frequency.
for (var i=0; i<len; i++) {
// if (freq[words[i]]) { bug if one of the words is "constructor"!
if (typeof freq[words[i]] === 'number') {
freq[words[i]] += 1;
} else {
freq[words[i]] = 1;
}
}
});
return freq;
}
这种解决方案可能过于简单,因为它删除标点符号并解析单词,但应该展示这个想法。此外,recurseTextNodes
函数留给读者=)。还有如何将此例程存储为书签(特别是如何向最终用户显示结果)的含义,但我再次假设你已经知道如何做到这一点。