1

現在、バックグラウンドでiframeを作成してソリューションを実装しているため、リクエストを処理しますが、その非常に信頼できないソリューション+やり過ぎです。400個のファイルのようなものがあり、それらのすべてがsendRequestメソッドを使用しています。それらを1つに結合できませんファイルは依存関係ローダー(Pub Subアーキテクチャ)によってロードされるため、バックグラウンドでMessageChannelとpostMessageを使用して、すでに概念実証を行っている別のソリューションがありますが、問題はcontentScriptまたは私の定義のフロントステージにあります、バックステージとフロントステージの間でメッセージを渡すには、chrome API を使用する必要があります。

どうすれば解決できますか?:)

4

1 に答える 1

1

私はあなたが何を意味するか知っていると思います。バックグラウンドページにすべてあるいくつかのjsファイルがあり、それらsendRequestを相互に共有したいと考えています。これを行うには、実際にsendRequests を実行するのではなく、関数を呼び出します。それはおそらく例でより良いです:

これの代わりに:

chrome.extension.onRequest.addListener(function(request, sender, respond)
{
    // bla bla handle request
});

この:

chrome.extension.sendRequest({ message: "hello" }, function(response)
{
    // do something with response
});

これをして:

function handle_message(request, sender, respond)
{
    // bla bla handle request
}
chrome.extension.onRequest.addListener(handle_message);

この:

handle_message({ message: "hello" }, function(response)
{
    // do something with response
});

もちろん、バックグラウンド ページにないスクリプトは引き続きsendRequests を実行します。

于 2011-04-03T11:28:42.030 に答える