1

inject スクリプトから global.html ページに window オブジェクトを渡す方法はありますか?

「ロード」リスナー関数からオブジェクトの一部としてウィンドウをグローバルページに渡そうとしていますが、メッセージをディスパッチしようとするとタイプエラーがスローされます。

これがコードです。

window.addEventListener("load", onDocLoad);

function onDocLoad()
{
    var msg = new Object();

    msg.url = window.location.href; // this all works 
    .....
    msg.win = window; // With this it throws type error on line safari.self.tab.dispatchMessage("XXX",msg);
    safari.self.tab.dispatchMessage("XXX",msg);  
}

メッセージのディスパッチが機能し、ウィンドウ オブジェクト以外のデータをエラーなしで渡すことができます。どうすればいいですか?

4

1 に答える 1

1

ドキュメントに記載されているように、HTMLWindowのようなオブジェクトを渡すことはできません。

メッセージデータは単一のデータ型に限定されません。ブール値、数値、文字列、配列、RegExpオブジェクト、または構造化された複製データを安全に渡すためのW3C標準に準拠するものであれば何でもかまいません。コマンドにデータが必要ない場合は、null、未定義、または空白のままにすることもできます。

于 2013-03-20T09:30:25.633 に答える