postMessage和事件监听器有时只能工作

时间:2018-04-23 22:59:05

标签: javascript events dynamics-crm postmessage

我的CRMform中嵌入了一个Web资源。它很容易将数据提交给CRM,但使用来自CRM onLoad的数据填充Web资源(html页面)会更加棘手。

据说我有一个带postMessage的js文件:

iFrame.contentWindow.postMessage(postObj, 'https://server.xrm.com/crmOrg/WebResources/htmlPageToPostMessageTo');

另一个HTML页面上的以下js保存postMessage的监听器,如下所示:

            $(window).on('message',
               function(event) {

                    // Important. Only accept messages from trusted origins.
                    if (~event.originalEvent.origin.indexOf('https://server.xrm.com')) {
                        var messageData = event.originalEvent.data;
                        //#1
                        if (messageData.attribute)
                        {
                           ....do stuff......
                         }

这表现得非常奇怪,因为有时它会打击听众,有时它不会

在调试器中,似乎以下是异步:

                    if `(~event.originalEvent.origin.indexOf('https://server.xrm.com')) {...`

我相当确定存在时间问题。

有人可以提供任何建议吗?

这让我和我的另一个开头拉了我们的头发。

问候。

0 个答案:

没有答案