“选项”页面是否可以在Opera扩展中具有页面操作?

时间:2015-06-25 20:00:36

标签: javascript google-chrome-extension opera-extension

我有一个Google Chrome扩展程序,我想将其转换为Opera扩展程序。部分功能是选项页面具有页面操作。

的manifest.json:

{
    "name": "Option Page Action",
    "version": "0",
    "manifest_version": 2,
    "options_page": "options.html",
    "background": { "scripts": [ "background.js" ] },
    "page_action": {}
}

options.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="options.js"></script>
</head>
<body>
<p>
I have a page action in Google Chrome, but not in Opera.
</p>
</body>
</html>

options.js:

chrome.runtime.connect();

background.js:

chrome.runtime.onConnect.addListener(function(port) {
    chrome.pageAction.show(port.sender.tab.id);
});

在Chrome中,这很好用。在Opera中,页面操作不会出现。调试显示调用show(tabId),并且不会抛出错误。但页面操作不会出现。由于Opera扩展(为了这些目的)与Chrome扩展相同,我不明白为什么会有差异,以及我如何克服它。有没有办法在我的选项页面上设置页面操作?

1 个答案:

答案 0 :(得分:3)

Opera不会显示扩展程序页面的URL。这曾经在Chrome中发生过(crbug.com/72021),但它已在Chrome 28中得到修复。由于某些原因,Opera尚未应用该修补程序。

如果选项页面上的页面操作很重要,您可以在公共网站上托管选项页面,并使用content script注入该页面中的功能。您甚至可以使用空白页作为网站并插入HTML&amp; CSS通过该内容脚本。