Opera浏览器扩展扩展 - 通过功能重新加载

时间:2012-05-27 15:33:04

标签: opera reload browser-extension opera-extension

我正在开发Opera浏览器的扩展程序,我正在寻找一个能够重新加载Opera扩展的函数或另一种解决我的问题的方法。我希望用户能够在旧版本的扩展(列表视图或'newmenu')和新版本(普通视图或'oldmenu')之间切换。

执行此操作的代码如下:

<a id="switch" href="javascript: void(0)" onClick="widget.preferences.version = 'newmenu'; document.getElementById('switch').innerHTML = 'Please reload the extension';">[Switch to Normal View]</a>

oldmenu.html 文件中的 widget.preferences.version ='newmenu',设置用户首选项以使用新菜单和 widget.preferences .version ='oldmenu'(此处未显示),位于 menu.html 中,将用户首选项设置为使用旧菜单。

然后,在 index.html 文件中,扩展程序会检查是否必须显示旧菜单或新菜单。

if (widget.preferences.version == "oldmenu") {
   var ToolbarUIItemProperties = {title: "4chan Boards", icon: "icons/icon_64x64.png", popup: {href: "oldmenu.html", width: 220, height: 620}}
} else {
   var ToolbarUIItemProperties = {title: "4chan Boards", icon: "icons/icon_64x64.png", popup: {href: "menu.html", width: 250, height: 350}}
}

现在,问题在于要执行此代码,用户必须手动重新加载扩展,这非常难看。

而且,由于Opera开发论坛目前无法访问(网关不良和加载时间过长),我想这是提出问题的最佳地点。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

嗯,这条线解决了部分问题。该行位于 index.html

theButton.onclick = function(){if (widget.preferences.version =="oldmenu") {theButton.popup.href = "oldmenu.html";}; if (widget.preferences.version == "newmenu"){theButton.popup.href = "menu.html";};};

另外,只需更改这些线条并添加href,就可以快速切换菜单。之前这不是一个选项,因为它只会切换一次并在您重新打开按钮时自动切换回来。

<a href="oldmenu.html" onClick="widget.preferences.version = 'oldmenu';">List view</a>
<a href="menu.html" onClick="widget.preferences.version = 'newmenu';">[Switch to Normal View]</a>

但是,我没有设法以这种方式改变弹出窗口的高度和宽度。所以,我只是在两个菜单之间做出妥协;)