Chrome的JavaScript替代方案,关于window.parent

时间:2011-11-11 14:51:20

标签: javascript silverlight google-chrome

以下代码是从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吗?

1 个答案:

答案 0 :(得分:0)

这应该有效:

window.frameElement.ownerDocument.parentWindow