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,这会导致重新评估和重新创建整个页面,当然还有所有以前的内容附加的事件处理程序不会自动重新附加。
document.body.insertAdjacentHTML("beforeend", wpkm_html);
我做了一个小 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,这会导致重新评估和重新创建整个页面,当然还有所有以前的内容附加的事件处理程序不会自动重新附加。
document.body.insertAdjacentHTML("beforeend", wpkm_html);