以下代码是从Silverlight应用程序执行的,该应用程序在.aspx文件中的iframe中运行:
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中调用代码时,它将崩溃:“调用自身失败”;堆栈跟踪以"at System.Windows.Browser.ScriptObject.InvokeSelf(Object[] args)“开头。
有人能告诉我如何重写这段代码来支持Google Chrome吗?
发布于 2016-06-16 18:32:30
这应该是可行的:
window.frameElement.ownerDocument.parentWindow https://stackoverflow.com/questions/8095651
复制相似问题