1
に関する次のコードは、.aspxのファイル内にあるIFRAMEで実行されているSilverlightアプリケーションから実行されますChromeのJavaScriptの代替、window.parent
private void PostMessage<T>(Message<T> message)
{
HtmlWindow window = HtmlPage.Window;
ScriptObject postMessage = window.Eval("window.parent.postMessage") as ScriptObject;
if (postMessage != null)
{
string jsonMessage = ToJsonString(message);
string[] args = { jsonMessage, "*" };
postMessage.InvokeSelf(args);
}
}
これはIEで正常に動作し、 Google Chromeでは表示されません。これはwindow.parent参照と関係があり、Chromeは未定義を返します。 Chromeでコードを呼び出すと、「自己呼び出しに失敗しました」というエラーが発生します。 stacktraceは "at System.Windows.Browser.ScriptObject.InvokeSelf(Object [] args)"から始まります。
Google Chromeをサポートするためにこのコードを書き直す方法を教えてもらえますか?
は私を引用しないが、私は、これはうまくいくと思う:あなたのポストのための 'window.frameElement.ownerDocument.parentWindow' – Joe
感謝を。私はそれを試しましたが、コードは "Eval failed"というエラーで失敗します。 – ebgHendriks
.aspxファイルにも役立たなかった – ebgHendriks