我正在为 Opera 浏览器开发一个扩展,我正在寻找一个能够重新加载 Opera 扩展的函数或解决我问题的替代方法。我希望用户能够在旧版本的扩展(列表视图或"新菜单")和新版本(普通视图或"旧菜单")之间切换。
执行此操作的代码如下:
<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 开发论坛目前无法访问(网关不好和加载时间长),我想这是提出我问题的最佳场所。谢谢你的时间。
好吧,这条线解决了部分问题。该行位于索引.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>
但是,我没有设法以这种方式更改弹出窗口的高度和宽度。所以,我只是在两个菜单的;)之间做出了妥协