2012-05-27 29 views
1

我正在开发Opera Browser的扩展,我正在寻找一个能够重新载入Opera扩展或解决我的问题的替代方法的函数。我希望用户能够在旧版本的扩展(列表视图或'newmenu')和新版本(普通视图或“oldmenu”)之间切换。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> 

widget.preferences.version =“newmenu”在这个oldmenu.html文件,将用户偏好使用新的菜单和位于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开发论坛目前无法访问(网关不佳,加载时间长),我想这是问我问题的最佳位置。谢谢你的时间。

回答

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> 

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

相关问题