1

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'は、新しいメニューと、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>

しかし、この方法でポップアップの高さと幅を変更することはできませんでした。だから、私はちょうど2つのメニューの間で妥協しました;)

于 2012-05-29T00:34:11.783 に答える