【问题标题】:JavaScript works only when Safari Develop Console is openJavaScript 仅在 Safari 开发控制台打开时有效
【发布时间】:2016-03-18 18:22:17
【问题描述】:

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

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

文字相同

_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="....">

【问题讨论】:

标签: javascript safari telerik developer-tools


【解决方案1】:

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

Sys.Application.add_load(MyFunction);

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

这只会在所有 Telerik 控件加载后调用该函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多