//??
我想这地方是防止误替换的,以下替换的代码先调用filterNode()函数传parentNode来判断是不是本身是不是
是IMG,A,SCRIPT,OBJECT标签,如果是就不替换。
if (filterNode(parentNode)) {
var kwAnchor = ' <a href="#" target="_blank" onmouseover="window.clearTimeout(tID);showHwMiniDiv(event, this);" onmouseout="tID=window.setTimeout(\'hideHwMiniDiv()\',1500);">'+ keyword +' </a>';
textRange.pasteHTML(kwAnchor);
//break;
isF++;
}
我想这地方是防止误替换的,以下替换的代码先调用filterNode()函数传parentNode来判断是不是本身是不是
是IMG,A,SCRIPT,OBJECT标签,如果是就不替换。
if (filterNode(parentNode)) {
var kwAnchor = ' <a href="#" target="_blank" onmouseover="window.clearTimeout(tID);showHwMiniDiv(event, this);" onmouseout="tID=window.setTimeout(\'hideHwMiniDiv()\',1500);">'+ keyword +' </a>';
textRange.pasteHTML(kwAnchor);
//break;
isF++;
}
IE与DOM的创建范围range对象方式不一样
实现2次替换是由于
while (textRange.findText(keyword)) {
//这里实现了2次替换,改成isF>2 将实现3次
if(isF>1){
break;
}
var parentNode = textRange.parentElement();
if (filterNode(parentNode)) {
var kwAnchor = ' <a href="#" target="_blank" onmouseover="window.clearTimeout(tID);showHwMiniDiv(event, this);" onmouseout="tID=window.setTimeout(\'hideHwMiniDiv()\',1500);">'+ keyword +' </a>';
textRange.pasteHTML(kwAnchor);
//break;
isF++;
}
if (bIE) {
var textRange = document.body.createTextRange(); while (textRange.findText(keyword_content)) {
if(isF>1){
break;
}
就可以了 不知道这样是不是对的 总之现在是只替换一次了 再次感谢大家