2012-05-27 43 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> 

但是,我沒有設法以這種方式更改彈出窗口的寬度和高度。所以,我只是在兩個菜單之間做出妥協;)

相關問題