标签: getscript

本机JavaScript中的jQuery.getScript替代方案

我正在尝试动态加载JS脚本,但使用jQuery不是一个选项.

我检查了jQuery源代码以了解如何实现getScript,以便我可以使用该方法使用本机JS加载脚本.但是,getScript只调用jQuery.get()

而且我无法找到get方法的实现位置.

所以我的问题是,

使用本机JavaScript实现自己的getScript方法的可靠方法是什么?

谢谢!

javascript jquery getscript

44
推荐指数
6
解决办法
3万
查看次数

如何通过JavaScript文件将所有JavaScript文件包含在目录中?

我有一堆JavaScript文件,我想在页面中包含,但我不想继续写

<script type="text/javascript" src="js/file.js"></script>
Run Code Online (Sandbox Code Playgroud)

那么有没有办法将所有文件都包含在目录中(未知大小)?我能做点什么......

$.getScript("js/*.js");
Run Code Online (Sandbox Code Playgroud)

...获取"js"目录中的所有JavaScript文件?我怎么能用jQuery做到这一点?

javascript jquery getscript

40
推荐指数
3
解决办法
9万
查看次数

Jquery getScript缓存

默认情况下,$ .getScript()禁用缓存,您可以使用$ .ajaxSetup并将缓存设置为true.当测试脚本是否实际上是用Firebug缓存时,脚本大部分时间都会返回200(这意味着脚本是一个新的副本),一个可能20或30次,它将返回304(意味着它使用了缓存)版).为什么绝大部分时间都会收到新版本?

$.ajaxSetup({
    cache: true
 });

 $.getScript( scriptFile );
Run Code Online (Sandbox Code Playgroud)

尚未编辑getScript检索的文件,并且请求是页面更改.

javascript jquery getscript

28
推荐指数
2
解决办法
2万
查看次数

我可以阻止history.popstate在初始页面加载时触发吗?

我正在开发一个通过AJAX提供内容的网站.

如果单击菜单中的某个项目,内容div将更新为$.get响应,没有任何花哨.

我正在实现history.pushState允许使用浏览器的后退/前进按钮进行导航.

我有以下内容在历史导航中加载内容:

$(function() {
    $(window).bind("popstate", function() {
        $.getScript(location.href); 
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是,当第一次加载页面时,此功能会$.getScript立即再次加载页面.第一次加载页面时,它会呈现初始HTML视图,然后在第二次加载时呈现JS视图,因为它是一个JS请求.

如何防止此事件在具有HTML请求的页面上触发?

javascript jquery history getscript popstate

25
推荐指数
3
解决办法
7万
查看次数

同步使用getScript

我正在编写一个需要广泛使用getScript的引擎.为了便于使用,我已将其推入自己的功能,但现在我需要确保函数本身是同步的.不幸的是,我似乎无法让getScript等到它加载的脚本在继续之前实际完成加载.我甚至尝试在调用之前将jQuery的ajax asynch属性设置为false.我正在考虑使用jQuery的when/done协议,但我似乎无法理解将其置于函数内并使函数本身同步的逻辑.任何帮助将非常感谢!

function loadScript(script){
//Unrelated stuff here!!!
$.when(
$.getScript(script,function(){
    //Unrelated stuff here!!!
})).done(function(){
    //Wait until done, then finish function
});
}
Run Code Online (Sandbox Code Playgroud)

循环代码(按要求):

for (var i in divlist){
        switch($("#"+divlist[i]).css({"background-color"})){
            case #FFF:
            loadScript(scriptlist[0],divlist[i]);
            break;
        case #000:
            loadScript(scriptlist[2],divlist[i]);
            break;
        case #333:
            loadScript(scriptlist[3],divlist[i]);
            break;
        case #777:
            loadScript(scriptlist[4],divlist[i]);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery getscript

22
推荐指数
3
解决办法
3万
查看次数

我可以在没有回调的情况下使用jquery getScript()吗?

我需要在另一个js文件中使用外部js文件中的javascript函数.这基本上是我尝试过的代码:

$.getScript('js/myHelperFile.js');
myHelperFunction();
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 我收到"myHelperFunction未定义"的错误.

但是,此代码有效:

$.getScript('js/myHelperFile.js', function(){myHelperFunction();});
Run Code Online (Sandbox Code Playgroud)

我特别希望能够以第一种方式完成它 - 将文件加载到我的文件顶部,然后使用我需要的任何函数.这是可能的,还是我误解了getScript的工作原理?

jquery getscript

11
推荐指数
1
解决办法
1万
查看次数

ReCAPTCHA ajax加载主题问题

无法弄清楚如何主题ajax加载recaptcha.以下代码不起作用.
来自Google Recaptcha

看到这篇文章Recaptcha ajax API自定义主题不起作用,但我肯定在localhost中查看和recaptcha工作正常,只是没有改变主题.

任何人都有关于如何让白色主题工作的建议?

    <script type='text/javascript'>
        var RecaptchaOptions = {
            theme : 'white'
         };
    </script>
    <div id="recaptcha_content">
      <noscript>
        <iframe src="http://www.google.com/recaptcha/api/noscript?k=6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q" height="300" width="500" frameborder="0"></iframe><br />
        <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
        <input type='hidden' name='recaptcha_response_field' value='manual_challenge' />
      </noscript>
    </div>
    <script type="text/javascript">
    $(document).ready(function() {
        $.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
            function() {Recaptcha.create("6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q", "recaptcha_content");
        });

    });
    </script>
Run Code Online (Sandbox Code Playgroud)

javascript jquery themes recaptcha getscript

10
推荐指数
2
解决办法
6181
查看次数

jQuery getScript

我目前正在使用几个必须以非常特定的顺序加载的JavaScript库.由于jQuery的getScript()是异步的,因此它可以非常快速地下载所有脚本,并在完成后执行它们.由于它们没有按顺序执行,因此我从库中获得了多个错误.

不幸的是,我无法更改或修改任何这些库.我试图做的是使用一种下载JavaScript库的方法,并在回调中让它调用自己,直到它完成加载所有库.

这适用于第一个文件.当第二个文件出现时,它会丢失回调内的上下文,我不能再调用我的递归方法了.

有任何想法吗?

代码的配对版本:

function loadFiles (CompletedCallback) {
    var Files = getFiles(); // This is an array of js files to load
    var currentFileIndex = 0;

    function processFile (file) {
        $.getScript(file[currentFileIndex], $.proxy(function () {
            ++currentFileIndex;
            if (currentFileIndex === Files.length) {
                CompletedCallback();
            } else {
                processFile(Files[currentFileIndex]);
            }
        }, this);
    };

    processFile(Files[currentFileIndex]);
};
Run Code Online (Sandbox Code Playgroud)

javascript jquery getscript

8
推荐指数
2
解决办法
8511
查看次数

检测脚本是否已加载

似乎helloworld.js根据我点击的次数加载多次#load.我这样说是因为当我查看Google Chromes开发人员工具网络标签时,它会显示helloworld.js我点击的次数#load.

$(document).ready(function() {

    $("#load").click(function(){
        $.getScript('helloworld.js', function() {
            hello();
        });
    });

});
Run Code Online (Sandbox Code Playgroud)

hello()函数如下所示:

function hello(){
    alert("hello");
}
Run Code Online (Sandbox Code Playgroud)

是否可以检测是否helloworld.js已经加载?

因此,如果它尚未加载,则加载它,如果已加载,则不加载它.

如果我单击#load按钮4次,这就是Developer Tools当前显示的内容:

在此输入图像描述

javascript jquery google-chrome internet-explorer-8 getscript

8
推荐指数
3
解决办法
2万
查看次数

getScript jQuery路径不起作用/ Ruby on Rails

我有一个jQuery函数,在列表项双击后调用.

应用程序/资产/ Java脚本/瓦/ tile.js

$('#list > li').dblclick(function(){
  // styling
  $(this).toggleClass('liked');

  // pass ID to controller
  var movie_id = $(this).attr("data-id");
  $.getScript("/likes.js");
});
Run Code Online (Sandbox Code Playgroud)

在将一些新格式应用于所述项目之后,我的主要目标是从我的like控制器创建数据库条目.在这个Railscast中,index来自comments控制器的动作通过这个简单的行被调用.

$.getScript("/comments.js");
Run Code Online (Sandbox Code Playgroud)

另外,一些JavaScript从index.js.erb文件中调用.

理解Railscasts示例代码的第一个问题是它们如何定义动作.如果我想createLike从我的电话中调出这个动作likes_controller怎么称呼它?

其次,到目前为止我的尝试都失败了,因为JavaScript文件都没有加载,并且动作也没有被调用.

不知何故,我感觉到我已经搞砸了路径.我应该在哪里找到应该使用该getScript函数调用的JavaScript文件?

应用程序/资产/ JavaScript的/喜欢/ index.js.erb的

console.log("Test");
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/ likes_controller.rb

class LikesController < ApplicationController
  protect_from_forgery

  def index
    Like.create(:user_id => current_user.id, :item_id => params[:id])
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby jquery ruby-on-rails getscript ruby-on-rails-3

7
推荐指数
1
解决办法
3153
查看次数