javascript - 如何加载外部文件并确保它首先在 JSFiddle 中运行?

标签 javascript asp.net-ajax jsfiddle

我有一个 JsFiddle here ,并添加了通过外部 JS/资源部分加载的 Microsoft AJAX。如何判断 AJAX 文件加载完成后我的 JS 代码是否运行?

AJAX 似乎也没有加载。 :(

这是 JSFiddle 中的代码:

Type.registerNamespace("Tutorial.Chapter1");
Tutorial.Chapter1.Person = function(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
};
Tutorial.Chapter1.Person.prototype = {
        set_firstName: function(value) {
            this._firstName = value;
        },
        get_firstName: function() {
            return this._firstName;
        },
        set_lastName: function(value) {
            this._lastName = value;
        },
        get_lastName: function() {
            return this._lastName;
        },
        _firstName: "",
        _lastName: "",
        displayName: function() {
            alert("Hi! " + this._firstName + " " + this._lastName);
        }
    };
Tutorial.Chapter1.Person.registerClass("Tutorial.Chapter1.Person", null);

最佳答案

jsFiddle 的外部资源选项卡目前使用起来有些棘手且不稳定。 此处定义的资源通常未正确包含在代码中。 JS和CSS资源的自动识别似乎有问题。如果发生这种情况,外部资源就不会添加到结果代码的头部。您可以通过查看 jsFiddle 的结果框架的源代码来检查这一点。您会发现生成的 HTML 代码中根本没有提及您的 MS AJAX 资源。

实际上可以通过向资源的 URL 添加虚拟值来强制进行正确的识别,如下所示(请参阅 –> jsFiddle docs 了解更多信息):

...&dummy=.js

以下示例展示了如何将外部 Google Maps API 资源添加到 jsFiddle(注意最后的 dummy 参数!):

https://maps.googleapis.com/maps/api/js?sensor=false&dummy=.js

不幸的是,这对您不起作用,因为附加其他参数时 MS AJAX URL 将失败。

一个解决方案(也是目前加载外部资源最安全的方法)是完全避免使用“外部资源”选项卡,并在 jsFiddle 的 HTML 窗口的第一行中手动加载外部代码,如下所示:

<script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js"></script>

这是您修改为使用该方法的 jsFiddle:http://jsfiddle.net/rEzW5/12/

它实际上并没有做很多事情(我没有检查其余代码有什么问题),但至少它不再抛出 JavaScript 错误。

关于javascript - 如何加载外部文件并确保它首先在 JSFiddle 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790943/

相关文章:

javascript - Jquery getJson 不调用回调

javascript - 在 js 文件中使用 forEach 逻辑时无法按预期查看输出

javascript - 无法访问对象属性,即使我可以看到它们存在

c# - 如何清除gridview

c# - 异步回发后重置滚动位置 - ASP.NET

javascript - X 次访问后隐藏 div(cookie)

css - ajax.actionlink 加载 img/div

javascript - 如何设置 JSFiddle 以与 Kendo Dataviz 一起使用?

javascript - 在 jsfiddle 中同时运行 jQuery 和 MooTools

internet-explorer-8 - 为什么jsfiddle在IE8和早期版本中根本不渲染?