Chrome的JavaScript替代方案,关于window.parent
以下代码从Silverlight应用程序执行,该应用程序在.aspx文件中的iframe中运行:Chrome的JavaScript替代方案,关于window.parent,javascript,silverlight,google-chrome,Javascript,Silverlight,Google Chrome,以下代码从Silverlight应用程序执行,该应用程序在.aspx文件中的iframe中运行: private void PostMessage<T>(Message<T> message) { HtmlWindow window = HtmlPage.Window; ScriptObject postMessage = window.Eval("window.parent.postMessage") as ScriptO
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);
}
}
private void PostMessage(消息消息)
{
HtmlWindow window=HtmlPage.window;
ScriptObject postMessage=window.Eval(“window.parent.postMessage”)作为ScriptObject;
if(postMessage!=null)
{
字符串jsonMessage=ToJsonString(消息);
字符串[]args={jsonMessage,“*”};
postMessage.InvokeSelf(args);
}
}
这在IE中运行良好,但在Google Chrome中不起作用。这与window.parent引用有关,Chrome返回undefined。
当在Chrome中调用代码时,它将崩溃:“调用self失败”;
堆栈跟踪以“at System.Windows.Browser.ScriptObject.InvokeSelf(Object[]args)”开头
有人能告诉我如何重写此代码以支持Google Chrome吗?这应该可以:
window.frameElement.ownerDocument.parentWindow
不要引用我的话,但我认为这是可行的:
window.frameElement.ownerDocument.parentWindow
谢谢你的帖子;我已经试过了,但是现在代码失败了,出现了一个“Eval failed”…添加var postMessage=window.parent.postMessage;到.aspx文件也没有帮助