2015-04-17 36 views
2

我在我的自定義實體中添加了一個簡單的導航鏈接。此鏈接調用web資源::ms dynamics crm 2015 web資源html body onload函數

<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不允許。我該如何處理這個問題?

+0

你得到的錯誤是什麼(crm不允許)? – BlueSam

回答

0

這是一個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(); 
0

我認爲你可以用setTimeout函數調用它

的setTimeout(TweetOnLoad,1000);

您可以給出平均毫秒值。

你也可以嘗試綁定你的功能在另一個小部件或事件的事件。

0

您可能受限於通信的跨框架邊界。實現這一點的正確方法是使用Window.postMessage,在實體的表單和自定義webresource(大概是一個帶有javascript的HTML頁面)上都有一個腳本,它們明確地(以明確定義的方式)與eachother進行通信。