我正在开发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开发论坛目前无法访问(网关不良和加载时间过长),我想这是提出问题的最佳地点。谢谢你的时间。
答案 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>
但是,我没有设法以这种方式改变弹出窗口的高度和宽度。所以,我只是在两个菜单之间做出妥协;)