我有一个微不足道的谷歌浏览器扩展,旨在在特定域名上显示一个
在大多数计算机上,这个程序可以正常运行。但是,在极少数情况下,用户看到的不是预期的
更奇怪的是,当扩展程序最初安装时,即使在少数计算机上,它也可以按预期工作。只有在重新启动Chrome后,错误的行为才会出现。无论扩展程序是从Chrome商店加载还是未打包加载,都会发生这种情况。
它也可以通过其他扩展程序(特别是使用百度网站的演示站点page-action-demo)进行复制。
是
页面操作
。
Manifest.json:
{
"name" : "Page action by content",
"version" : "1.1",
"description" : "Shows a page action for HTML pages containing a video",
"background" : {
"scripts": ["background.js"],
"persistent": false
},
"page_action" :
{
"default_icon" : "video-19.png",
"default_title" : "There's a <video> in this page!"
},
"permissions": [ "declarativeContent" ],
"icons" : {
"48" : "video-48.png",
"128" : "video-128.png"
},
"manifest_version": 2
}
background.js:
chrome.runtime.onInstalled.addListener(function () {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function () {
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: 'stackoverflow.com' },
})
],
// And shows the extension's page action.
actions: [new chrome.declarativeContent.ShowPageAction()]
}
]);
});
});
chrome.pageAction.onClicked.addListener(function (tab) {
alert('hello!');
});
在大多数计算机上,这个程序可以正常运行。但是,在极少数情况下,用户看到的不是预期的
alert()
,而是扩展程序的右键菜单(如果该操作被禁用或右键单击,则通常会显示此菜单)。图标亮起来,就好像已启用,但是onClicked
监听器未执行。更奇怪的是,当扩展程序最初安装时,即使在少数计算机上,它也可以按预期工作。只有在重新启动Chrome后,错误的行为才会出现。无论扩展程序是从Chrome商店加载还是未打包加载,都会发生这种情况。
它也可以通过其他扩展程序(特别是使用百度网站的演示站点page-action-demo)进行复制。
browserAction
则不受影响。是
manifest.json
中存在错误,还是我需要提交一个错误报告?
pageAction.onClicked()
会在单击页面操作图标时触发。如果页面操作有一个弹出窗口,则此事件将不会触发。您可以从SO帖子中查看弹出窗口问题的解决方案。 - Jessica Rodriguez