Альтернатива JavaScript для Chrome, относительно window.parent - PullRequest
1 голос
/ 11 ноября 2011

Следующий код выполняется из приложения Silverlight, которое выполняется в 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, но не в Google Chrome. Это связано со ссылкой на window.parent, Chrome возвращает undefined. Когда код вызывается в Chrome, происходит сбой: «Не удалось вызвать себя»; трассировка стека начинается с "at System.Windows.Browser.ScriptObject.InvokeSelf (Object [] args)"

Может кто-нибудь сказать мне, как переписать этот код для поддержки Google Chrome тоже?

1 Ответ

0 голосов
/ 16 июня 2016

Это должно работать:

window.frameElement.ownerDocument.parentWindow 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...