以下代码是从Silverlight应用程序执行的,该应用程序在iframe中运行,该iframe位于.aspx文件中:
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中运行良好,但在谷歌浏览器中不行。这与window.parent引用有关,Chrome返回undefined。 在Chrome中调用代码时,它将崩溃:“无法调用self”; stacktrace以“at System.Windows.Browser.ScriptObject.InvokeSelf(Object [] args)”
开头有人可以告诉我如何重写此代码以支持Google Chrome吗?
答案 0 :(得分:0)
这应该有效:
window.frameElement.ownerDocument.parentWindow