0

バックグラウンド プロセスと挿入されたスクリプトを含む Opera 11 拡張機能があります。これらは、バックグラウンド スクリプトのクロスサイト XMLHttpRequest 機能を使用して、(ユーザーが表示している Web ページではなく) リモート サーバーと非常に頻繁に通信します。

パッケージを編集せずにユーザーが変更できるように、サーバーの URL を設定したいと思います。config.xml ファイルは、.xml を受け入れるため、適切です<preference name="serverUri" value="..." />。ただし、スクリプトをサーバーから (Opera のサイト経由ではなく) 直接更新できるようにしたいと考えています<update-description href="http://myserver.com/client/update" />

だから私がやりたいhrefのは、要素の属性をupdate-description設定の値に依存させることserverUriです。次のような構文を想像します。

<update-description href="{$serverUri}" />

しかし、この種の機能への参照は見つかりませんでした。これを解決する方法はありますか?

4

2 に答える 2

1

あなたが書いたように config.xml ファイルで変数を使用することはできません。これを追加する予定はないと思います。

preference環境設定は config.xmlの要素だけでなく、 を使用しても設定できることはご存知だwidget.setPreferenceForKey(value, key)と思いますが、この場合、それで問題が解決するとは思いません。

私が考えることができる唯一の回避策は、サーバー上の外部スクリプトと拡張機能のローカル ファイル (バックグラウンド スクリプトまたは挿入されたスクリプト) にすべてのロジックがある場合で、外部スクリプトを参照する非常に単純な行をいくつか持つことです。何かのようなもの:

var script = document.createElement('script');
script.src = 'http://www.example.com/script.js';
document.body.appendChild(script);

次に、スクリプトの URL をユーザーが編集できるようにして、.xml に保存できますwidget.preferences

Hallvorsによる編集:このソリューションには重大な欠点があります。以下の私のコメントを参照してください。

于 2011-02-23T05:13:48.930 に答える
0

私の知る限り、これは現在不可能です。これは少し変わったユース ケースのように思えますが、実装するのは危険を伴う可能性があるため、なぜこれを実行したいのかについて詳しく聞くのは興味深いことです。

于 2012-06-12T20:05:02.950 に答える