ms dynamics crm 2015 web 资源 html body onload 函数

ms dynamics crm 2015 web resources html body onload function

我在我的自定义实体中添加了一个简单的导航 link。此 link 调用网络资源::

<script> function TweetOnLoad(){ var tweetWord = window.parent.Xrm.Page.data.entity.attributes.get("new_name").getValue(); var dynamicUrl ="http://localhost:3000/?tw="+tweetWord ; location.href = dynamicUrl; } </script> 

body onload="TweetOnLoad()"

但是有一个问题:我无法在 body 标签上调用 TweetOnLoad 函数,因为 crm 不允许。我该如何处理这个问题?

我想你可以像

这样用 settimeout 函数来调用它

setTimeout(TweetOnLoad,1000);

你可以给出一个平均毫秒值。

您也可以尝试将您的功能绑定到另一个小部件或某事的事件上。

您可能受到通信的跨帧边界的限制。实现这一点的正确方法是使用 Window.postMessage,在实体的表单和您的自定义 Web 资源(大概是带有 javascript 的 HTML 页面)中有一个脚本,有意地(在定义明确的方式)彼此沟通。

这是 iFrame/WebResource 吗,如果是,您最好传递 "new_name" 属性的 URL 参数。

尽管如此,将 JavaScript 移动到 HTML body 标记的末尾,然后调用您的函数。

function TweetOnLoad(){ 
   var tweetWord = window.parent.Xrm.Page.data.entity.attributes.get("new_name").getValue(); 
   var dynamicUrl ="http://localhost:3000/?tw="+tweetWord; 
   location.href = dynamicUrl; 
}

TweetOnLoad();