【问题标题】:What's the Zepto equivalent of jQuery.getScript()?jQuery.getScript() 的 Zepto 等价物是什么?
【发布时间】:2012-01-23 07:06:19
【问题描述】:

什么是 jQuery.getScript() 的 Zepto 等价物?我需要用这两个库动态加载一个 JavaScript 文件。

【问题讨论】:

    标签: jquery zepto


    【解决方案1】:

    这个工程附加到 zepto.js!

    ;(function ($) { 
        $.getScript = function(src, func) {
            var script = document.createElement('script');
            script.async = "async";
            script.src = src;
            if (func) {
               script.onload = func;
            }
            document.getElementsByTagName("head")[0].appendChild( script );
        }
    })($)
    

    【讨论】:

    • 它不会出现在 fn 上。此外,由于您正在编写一个插件,因此您可以通过使用 Zepto 功能真正简化。
    • 理论上,避免使用 $() 来附加元素或设置属性等应该更快并且可以节省内存 - 在快速加载时两者都很重要。所以我就这样做了,我添加了一些修改(现在在编辑审查中)。
    • 我不知道或不需要异步参数,所以我只是将其注释掉。如果通过 Web 与文件系统加载,我会研究它以提高速度。
    【解决方案2】:
    ;(function($){
    
        $.getScript = function (url, success, error) {
            var script = document.createElement("script"),
                $script = $(script);
            script.src = url;
    
            $("head").append(script);
            $script.bind("load", success);
            $script.bind("error", error);
        };
    
    })(Zepto);
    

    这部分内容来自Zepto.ajaxJSONP

    【讨论】:

      【解决方案3】:

      我一直在寻找同样的东西,我发现标准的 $.ajax 调用将在 dataType === "script" 时评估响应。我将它实现为 Zepto 插件,如下所示:

      (function ($) {
          var getScript = function (url, callback, options) {
                  var settings  = $.extend({
                      'url': url,
                      'success' : callback || function () {},
                      'dataType' : 'script'
                  }, options || {});
                  $.ajax(settings);
              };
      
          $.getScript = getScript;
      }($ || Zepto));
      

      它应该使用与 jQuery 版本相同的语法,除了我添加了 options (3rd) 参数以允许将任意选项传递给 ajax 请求。

      【讨论】:

      • 这种方法的一个限制是您不能进行跨域请求。第三方脚本会失败。
      猜你喜欢
      • 2014-05-08
      • 2014-06-12
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 2018-07-10
      • 2023-04-10
      • 2011-01-19
      • 2010-12-07
      相关资源
      最近更新 更多