01.07.2013, 18:07 | #1 |
Участник
|
Не отрабатывает скрипт после ur12
Всем привет. Такая проблема, что после обновления crm до 12 роллапа, начал падать скрипт на OnLoad, суть его в обновлении грида. Вот код :
X++: var a = ["sample1","sample2","sample3"]; for (var i in a) { var gridControl = Xrm.Page.ui.controls.get(a[i]); if (gridControl != null) { gridControl.refresh(); } } |
|
02.07.2013, 02:22 | #2 |
Участник
|
http://msdn.microsoft.com/en-us/libr...x#BKMK_refresh
Цитата:
Note
The refresh method is not available in the form OnLoad Event. |
|
|
За это сообщение автора поблагодарили: NoTimeToCry (1). |
02.07.2013, 10:23 | #3 |
Участник
|
попробуйте это :
Код: for (var i in a) { var gridControl = Xrm.Page.ui.controls.get(a[i]); if (gridControl != null) return; if (gridControl.readyState != "complete") { setTimeout('название функции где идет рефреш()', 1000); return; } gridControl.refresh(); } Последний раз редактировалось spectr; 02.07.2013 в 10:25. |
|
|
За это сообщение автора поблагодарили: NoTimeToCry (1). |
02.07.2013, 10:37 | #4 |
Участник
|
Цитата:
Сообщение от spectr
попробуйте это :
Код: for (var i in a) { var gridControl = Xrm.Page.ui.controls.get(a[i]); if (gridControl != null) return; if (gridControl.readyState != "complete") { setTimeout('название функции где идет рефреш()', 1000); return; } gridControl.refresh(); } Для IFRAME есть event OnReadyStateComplete IFRAME OnReadyStateComplete Event The OnReadyStateComplete event indicates that the content of the IFRAME has loaded and can be accessed in code. Use this event when referencing IFRAME controls within your scripts. http://msdn.microsoft.com/en-us/library/gg334481.aspx Это поддерживаемый метод. Последний раз редактировалось g.Naukovych; 02.07.2013 в 10:43. |
|
|
За это сообщение автора поблагодарили: NoTimeToCry (1). |
09.07.2013, 18:42 | #5 |
Участник
|
Вот млин самому пришлось такое делать на UR 12
Так вот под все браузеры сидел долго и нудно ковырял Script и дошел до такого решения: Код: $(Xrm.Page.getControl("WebResource_ELL").getObject()).load(function() { тут тело }); Xrm.Page.getControl("WebResource_ELL").setSrc(Xrm.Page.getControl("WebResource_ELL").getSrc()); Начал ковырять все с IFRAME OnReadyStateComplete Event, так оказалось что для подключаемых HTML Web Resource ее нет! Пошел другим путем через Xrm.Page.getControl("WebResource_ELL").getObject(), а там получив object есть такая штука как readystatechange Вот результат пробы был такой: Код: Xrm.Page.getControl("WebResource_ELL").getObject().readystatechange = function() { тело }); Тогда перешел на JQuery и ее .load, но и тут не все гладко , оказалось что .load не всегда срабатывает. Тут начал думать и пришел к мнению что IFrame уже начинает грузится с кеша раньше чем выполняется OnLoad формы, потому решил добавить Код: Xrm.Page.getControl("WebResource_ELL").setSrc(Xrm.Page.getControl("WebResource_ELL").getSrc()); |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|