Chrome 扩展禁用 js 触发器

Chrome extension disables js triggers

我做了一个小 Chrome 扩展,可以在当前页面中注入一些代码。 但是,此扩展有一个奇怪的行为,无论何时注入代码,页面 Javascript 触发器的 none 似乎都不再起作用。

你们中有人知道会发生什么吗?除了修复代码之外,我真的很想知道为什么会这样。

示例:在此页面上:http://www.acti.fr/success-story/ghd/如果扩展程序插入图片,我无法单击底部的菜单或“continuer la lecture”。

这是清单和实际代码:

manifest.json

{
    "manifest_version": 2,

        "name": "wpi",
        "description": "just an other extension",
        "version": "1.0",
        "content_scripts": [{
            "matches": ["http://*/*", "https://*/*"],
            "js": ["my-style.js"]
        }]
}

我的-script.js :

function wpkm_check_content(wpkm_text) {
    var wpkm_word = wpkm_text.split(" ");
    var wpkm_c = wpkm_word[0].localeCompare("Wordpress");
    if (wpkm_c == 1)
        return (1);
    return (0);
}
var wpkm_html = '<div id="wpkm-bloc" style="position:absolute;right:10px;top:10px;z-index:99999">';
wpkm_html += '<img id="wpkm-img" src="https://nathanarnold.files.wordpress.com/2009/02/ssim51.gif">';
wpkm_html += '</div>';
var wpkm_sdomain = document.domain;
var wpkm_request = new XMLHttpRequest();
wpkm_request.open('GET', '/license.txt', true);
wpkm_request.onreadystatechange = function(){
    if (wpkm_request.readyState === 4){
        if (wpkm_request.status === 200
                && wpkm_check_content(wpkm_request.responseText) == 1) {
            document.body.innerHTML += wpkm_html;
        }
        else {
            console.log("Oh no, it does not exist!");
        }
    }
};
wpkm_request.send();

任何提示将不胜感激:D

您使用 += 追加运算符有效地重新分配了文档正文的 entire innerHTML,这会导致重新评估和重新创建整个页面,当然还有所有以前的内容附加的事件处理程序不会自动重新附加。

改用insertAdjacentHTML

document.body.insertAdjacentHTML("beforeend", wpkm_html);