我写了一个小的chrome扩展程序,从外部源(很多)获取一些html内容。
为了提取相关信息(只是文字),我使用
var $response = $(data);
var $senderows = $response.find(".sendetermine tr");
$senderows.each(function() {
...
});
扫描生成的HTML。我不需要将ajax结果添加到DOM中,因此我不关心外部HTML结果的任何内联脚本。但仍然是:Chrome不断投掷数百个"拒绝执行内联事件处理程序"错误。如果我只使用var $response = $(data)
,则错误已经出现。
我怎样摆脱它们?如何解析生成的HTML(最好使用jQuery)而不会出现这些错误?
编辑:还有其他提示吗?这些错误正在以极高的速度发生,它们甚至会显着降低浏览器的速度
答案 0 :(得分:0)
至少我能够找到一种解决方法:我在使用$()
之前从HTML文本中删除了所有onXXXX内联处理程序,等等,没有更多错误。
function removeInline(theHTML) {
theHTML = theHTML.replace(/onclick=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onchange=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onsubmit=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onmouseover=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onmouseout=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onerror=\"[^\"]*\"/g, '');
theHTML = theHTML.replace(/onload=\"[^\"]*\"/g, '');
return theHTML;
}