JavaScript仅在Safari Develop Console打开时有效

时间:2016-03-18 18:22:17

标签: javascript safari telerik developer-tools

我正在使用Telerik UI controls。他们有一个嵌入式JS,看起来好像对Safari 9.0.3(10601.44)开发人员控制台有一些依赖。

当我们尝试在telerik组合框中加载telerik树视图时,我们得到以下错误。 仅限Safari 9.0.3(10601.44)

enter image description here

同样的文字

_initRightToLeftScriptResource.axd:8396TypeError: null is not an object (evaluating 'c.set_additionalQueryString')
_initRightToLeftScriptResource.axd:8395
initializeScriptResource.axd:8332
endUpdateTelerik.Web.UI.WebResource.axd:2:49050
endCreateComponentsTelerik.Web.UI.WebResource.axd:2:63458
_raiseInitTelerik.Web.UI.WebResource.axd:2:65559
_doInitializeTelerik.Web.UI.WebResource.axd:2:63974
(anonymous function)Telerik.Web.UI.WebResource.axd:2:65784
(anonymous function)Telerik.Web.UI.WebResource.axd:2:50713
pTelerik.Web.UI.WebResource.axd:2:558
_2PassTelerik.Web.UI.WebResource.axd:2:50697

我的问题与此Why does JavaScript only work after opening developer tools in IE once?非常相似,但在Safari中。

我尝试了所有这些建议,但没有人提供帮助。

更新

代码工作正常,调用函数有一些延迟。

 if (navigator.sayswho === "Safari 9") {
                    setTimeout(function() {
                        try {
                        loadInit();
                        } catch (e) {
                            alert("error");
                            console.log(e);
                        } 
                    }, 1000);

尝试了所有以下,没有工作,不确定如何跟踪正在加载完整DOM的正确事件,并且没有发生待处理的ajax调用。

$(document).load(...)
$(window).load(...)
<body onload="....">

1 个答案:

答案 0 :(得分:0)

由于您使用的是Telerik控件,请使用:

Sys.Application.add_load(MyFunction);

function MyFunction(sndr, args){
//your code
}

只有在所有telerik控件都已加载后才会调用该函数。