Google chrome extension 如何在Chrome扩展中的运行时创建DOM

Google chrome extension 如何在Chrome扩展中的运行时创建DOM,google-chrome-extension,Google Chrome Extension,我正在测试一个chrome扩展,其中我在运行时在OpenTab中创建了一个div,并对其应用了一些css。当我在我的系统上测试它时,它工作正常,但当我在其他系统(相同的chrome版本)上测试它时,它在某些页面上工作,但在其他页面上不工作 我创建div的代码如下: chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript(null, {file: "content_script.j

我正在测试一个chrome扩展,其中我在运行时在OpenTab中创建了一个div,并对其应用了一些css。当我在我的系统上测试它时,它工作正常,但当我在其他系统(相同的chrome版本)上测试它时,它在某些页面上工作,但在其他页面上不工作

我创建div的代码如下:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null, {file: "content_script.js"});
});
内容\u script.js:


//
var link=document.createElement('link');
link.href=http://mydomain.com/getfeedback-dialog.css';
link.rel='stylesheet';
link.type='text/css';
document.getElementsByTagName('head')[0].appendChild(链接);
//覆盖层
var getfeedback_overlay=document.createElement('div');
getfeedback_overlay.setAttribute('id','getfeedbackoverlay');
document.body.appendChild(getfeedback\u overlay);
//对话
var getfeedback_dialog=document.createElement('div');
getfeedback_dialog.setAttribute('id','getfeedbackdialog');
//容器
var getfeedback_container=document.createElement('div');
getfeedback_container.appendChild(getfeedback_对话框);
//
getfeedback_dialog_a=document.createElement('a');
getfeedback_对话框_a.setAttribute('href','http://mydomain.com');
getfeedback_对话框_a.setAttribute('id','textlogo');
getfeedback_对话框_a.setAttribute('target','u blank');
getfeedback_dialog_a.innerHTML='Extension by Me';
appendChild(getfeedback\u dialog\u a);
getfeedback_container.setAttribute('id','getfeedbackcontainer');
document.body.appendChild(getfeedback_容器);

我想使用与“时尚”扩展相同的方法,它在加载页面时修改页面的CSS。他们是如何管理的?

您试过调试它吗?有什么错误吗?但是首先你应该把你注入的那一行代码放进一个文件中。理论上应该是可行的,但是提供更多的代码可以得到更好的答案。请记住,您不能将代码注入某些页面(如special about:和chrome://页面以及chrome webstore)。是的,请提供有关该问题的更多尾码,除非您找到问题的答案……您是否检查了清单文件中的权限?这应该可以正常工作。您是否正确设置了权限?您是否尝试过注入内容脚本?
//<LINK>
var link = document.createElement('link');
link.href = 'http://mydomain.com/getfeedback-dialog.css';
link.rel  = 'stylesheet';
link.type = 'text/css';
document.getElementsByTagName('head')[0].appendChild(link);

//OVERLAY
var getfeedback_overlay = document.createElement('div');
getfeedback_overlay.setAttribute('id', 'getfeedbackoverlay');
document.body.appendChild(getfeedback_overlay);

//DIALOG
var getfeedback_dialog = document.createElement('div');
getfeedback_dialog.setAttribute('id','getfeedbackdialog');

//CONTAINER
var getfeedback_container = document.createElement('div');
getfeedback_container.appendChild(getfeedback_dialog);

//<IMG>
getfeedback_dialog_image = document.createElement('img');
getfeedback_dialog_image.setAttribute('src','http://mydomain.com/icon.jpg');
getfeedback_dialog.appendChild(getfeedback_dialog_image);

//<A>
getfeedback_dialog_a = document.createElement('a');
getfeedback_dialog_a.setAttribute('href','http://mydomain.com');
getfeedback_dialog_a.setAttribute('id','textlogo');
getfeedback_dialog_a.setAttribute('target','_blank');
getfeedback_dialog_a.innerHTML = 'Extension by Me';
getfeedback_dialog.appendChild(getfeedback_dialog_a);

getfeedback_container.setAttribute('id','getfeedbackcontainer');
document.body.appendChild(getfeedback_container);