1

我正在为 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'设置用户偏好以使用新菜单和位于menu.html中的widget.preferences.version = 'oldmenu' (此处未显示) , 设置用户偏好以使用旧菜单。

然后,在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 开发论坛(网关不好,加载时间长),我想这是问我问题的最佳场所。谢谢你的时间。

4

1 回答 1

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>

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

于 2012-05-29T00:34:11.783 回答