我们已经构建了一个Chrome扩展程序,可以通过在Gmail下方直接插入电子邮件来消除链接电子邮件。
问题在于,当用户添加扩展程序时,直到您返回chrome:// extensions /并取消激活,然后重新激活浏览器扩展程序才会显示该扩展程序。我不确定我们需要做些什么来解决这个问题。
执行此操作后,扩展程序将起作用。
如果您:
,则可以复制该问题这将安装扩展程序,但在您导航回扩展程序页面并取消激活,然后重新激活扩展程序之前,它不会显示在您的Gmail中。然后,如果你去看电子邮件,你会看到它。
非常感谢你随时可能要研究这个问题。
答案 0 :(得分:0)
刷新要运行内容脚本的选项卡应该可以解决问题,但是如果您不想要求您可以“按需”将内容脚本注入需要的选项卡中扩展开始时,如下所示:
// Injects content_script.js into tab with id 1234
injectScriptInTab('content_script.js', 1234);
function injectScriptInTab(url, tabId) {
readFile(url, function(scriptBody) {
chrome.tabs.executeScript(tabId, { code: scriptBody });
});
}
function readFile(url, callback) {
var xhr = new XMLHttpRequest();
try {
xhr.onreadystatechange = function(){
if (xhr.readyState != 4) {
return;
}
if (xhr.responseText) {
callback(xhr.responseText);
}
else {
throw new Error('No data returned for readFile: ' + url);
}
}
xhr.onerror = function(error) {
console.error(error);
}
xhr.open("GET", url, true);
xhr.send(null);
} catch(e) {
console.error(e);
}
}
为了保持理智,您可能希望在content_script.js中添加一些内容,以防止脚本在给定选项卡中被多次执行,例如。
if (window.loadedMyContentScript) return;
window.loadedMyContentScript = true;
/* remainder of content script */