删除从Chrome扩展程序添加的事件监听器?

时间:2019-06-27 07:54:18

标签: javascript google-chrome-extension removeeventlistener

我无法通过Chrome扩展程序中的按钮在文档上使用removeEventListener。

我对孤立的世界有很好的了解,但我不知道我该怎么做。我什至不确定弹出脚本是否也受制于孤立的世界环境?

我正在检查是否存在隐藏字段。当检测到该隐藏字段时,该代码应该删除事件侦听器,但是好像它不存在。这是我的popup.js:

function toggle_clare(){      
if(!document.getElementById("clare_on")){ //check for existence of hidden field

var clare_status = document.createElement("input");
    clare_status.type = "hidden";
    clare_status.id = "clare_on";
    clare_status.value = "on";

document.body.appendChild(clare_status); //add it to document if doesn't exist

document.addEventListener("keyup", read_out, true); //add keyup listener

return clare_status.value; //send "on" to the button in the popup
}

else if(document.getElementById("clare_on")){ //alread exists
    var off = "off";

    $("#clare_on").remove();//remove the hidden field

    document.removeEventListener("keyup", read_out, true);//not working

    return off; // send "off" to the button
   }
}

//Function call

document.getElementById( "clare_button" ).addEventListener( "click", 
function(){
    chrome.tabs.executeScript({
        code: '(' + toggle_clare + ')()'
    }, ( results ) => { // receive "on" or "off" from toggle_clare function

            document.getElementById("clare_button").innerText = "Clare is now " + results[0];

    })
})

我期望这会在删除隐藏字段时删除事件侦听器。除了removeEventListener之外,所有这些代码都有效。

0 个答案:

没有答案
相关问题