标签: getscript

$ getScript加载google maps api的方法 - >空白页?

我的页面上有一个小按钮,可以加载谷歌地图.由于我希望我的页面加载速度非常快,而且此功能实际上并不是必需的,因此我不想在页面加载时嵌入google maps API脚本.我只是想在实际点击按钮时加载它.

我尝试使用jquery $ .getScript()方法,但是如果我使用上面的代码,我会得到一个空白页面.页面开始加载,一旦我的javascript文件被执行,页面就是空白(白色).

$.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){
    $('#googleMap').live('click', function(e) {

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });
});
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

编辑/更新:

如果我这样做似乎没有什么区别:

$('#googleMap').live('click', function(e) {

    $.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });

});
Run Code Online (Sandbox Code Playgroud)

页面加载时页面不会显示为空白,但是一旦我点击地图按钮,页面就会变白.

更新2:

loadMap函数:

function loadMap(cont, scroll) {

    var latlng = new google.maps.LatLng(47.244236,11.249194);
    var options = {
        zoom: 14,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: scroll,
        streetViewControl: false,
        navigationControlOptions: {  
            style: google.maps.NavigationControlStyle.SMALL 
        }
    }

    var map = new google.maps.Map(document.getElementById(cont), options);

    var mapdesc = '<div id="gmContent">'+
    '<h3 id="gmTitle" class="widget-title">Something</h3>'+
    '<div id="gmBody">'+
    '</div>'+
    '</div>';

    var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-maps-api-3 getscript

3
推荐指数
1
解决办法
5269
查看次数

将变量发送到$ .getScript

是否可以将变量发送到使用加载的脚本$.getScript

目前我有:

$.getScript( "js/my_script.js", function() {
// do something here after script has loaded
});
Run Code Online (Sandbox Code Playgroud)

但我想将一个变量发送到加载的脚本.这是可能的,如果是的话,怎么样?

例如

// this is a variable set outside of the script loaded via `$.getScript`
var my_variable = 1

// how do I get that variable sent to `my_script.js`
$.getScript( "my_script.js", function() {
// do something here after script has loaded
});
Run Code Online (Sandbox Code Playgroud)

jquery getscript

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

jquery getScript函数永远不会失败?

永远不会调用jQuery getScript失败函数.看到这个小提琴:http: //jsfiddle.net/getsetbro/8xNMs/

$.getScript("http://api.jquery.com/scripts/jquery.NO-SUCH-FILE.js").done(function() {
    console.log('yep');
}).fail(function() {
    console.log('fail function does not fire fine');
});
Run Code Online (Sandbox Code Playgroud)

并且永远不会调用完整的函数:http: //jsfiddle.net/getsetbro/ns6yQ/

$.ajax({
    url: url,
    type: 'get',
    crossDomain: true,
    dataType: 'script',
    async:false,
    cache:false,
    success: function(result) {
        console.log('SUCCESS');
    },
    error: function(result) {
        console.log('ERROR');
    },
    complete: function(result) {
        console.log('COMPLETE');
    }
})
Run Code Online (Sandbox Code Playgroud)

哦,在IE中它实际上会触发SUCCESS和COMPLETE它应该失败.= [

ajax jquery getscript

3
推荐指数
1
解决办法
3131
查看次数

jQuery Ajax加载和getScript

我正在尝试设置我的网站,以便通过javascript加载主区域中的内容(某些页面需要一段时间才能呈现).但是,在使用jQuery.load(),jQuery.getScript和jQuery.ajax()时,我遇到了一些逻辑问题.

我需要能够通过getScript加载某些javascript文件,以便我可以在加载的内容中使用这些函数等.

  • index.php - 显示的主文件(也包含#loading)
  • js/script.js - 包含加载代码的文件
  • js/*.js - 加载后我需要在#maincontent内部使用的几个javascript文件
  • load.php - 正在加载到#maincontent的文件

的script.js:

$(document).ready(function() {
$('#loading').fadeIn('fast');
$('#maincontent').load('load.php', function() {
    $('#loading').fadeOut('fast');
    $('#maincontent').fadeIn('slow');
});

$('#navigation li a').click(function() {
    $('#maincontent').fadeOut('fast');

    $.getScript('js/jquery.contextMenu-1.01.js');
    $.getScript('js/jquery-1.5.1.min.js');
    $.getScript('js/jquery-ui-1.8.12.custom.min.js');
    $.getScript('js/jquery.qtip-2.0.0.min.js');
    $.getScript('js/ajax.js');

    $.ajax({
        method: 'get',
        url: 'load.php',
        data: 'page=' + $(this).attr('rel'),
        beforeSend: function() {
            $('#loading').fadeIn('fast');
        },
        complete: function() {
            $('#loading').fadeOut('fast');
        },
        success: function(html) {
            $('#maincontent').fadeIn('slow');
            $('#maincontent').html(html);
        }
    });
});

$.getScript('js/jquery.contextMenu-1.01.js');
$.getScript('js/jquery-1.5.1.min.js');
$.getScript('js/jquery-ui-1.8.12.custom.min.js');
$.getScript('js/jquery.qtip-2.0.0.min.js');
$.getScript('js/ajax.js');
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试首先加载load.php而不使用任何URL参数和来自用户的任何交互.尽管每次都正确加载load.php,但javascript代码却无法说明.有时它可以工作,有时我必须刷新页面几次才能得到一个干净的控制台(没有错误).

控制台中的错误告诉我,在load.php中使用js代码之前,它没有正确加载.如果load.php需要一段时间(使用PHP sleep(5)函数测试),则尤其如此.

如果我需要澄清任何事情,请告诉我:)

ajax jquery load getscript

2
推荐指数
1
解决办法
9019
查看次数

jQuery的getScript - 包括进入主范围的文件?

我已经考虑过如何在backbone.js-application中包含文件.在生产中,我显然会加入我的文件并最小化它们以保持最低要求,但在开发过程中,只需加载所有文件并且不必为每一个小变化调用一个buildscript就好了.

所以我看了一下jQuery' getScript()方法.我尝试了,并能够加载我的文件.

当我将getScript-call放入一个函数时,为了确保在我启动backbone.js应用程序之前加载文件,似乎每个加载的脚本都不包含在全局范围内.

var loader = function () {
     var scripts = ['/app/routers/myrouter.js'];

     for (var i = 0; i < scripts.length; i++) {
         $.getScript(scripts[i], function () {});
     }

     console.log(myrouter); // Works - myrouter is a function
     init(); // Callback - we've loaded all scripts
 };

var init = function () {
    console.log(myrouter); // myrouter is undefined
};

$(document).ready(loader());
Run Code Online (Sandbox Code Playgroud)

jquery eval getscript backbone.js

2
推荐指数
1
解决办法
1191
查看次数

未捕获的类型错误:$.getScript(...).done 不是函数

我在这里遇到了一个奇怪的情况..

下面的代码正在运行:

// this code working perfectly

$.getScript( "https://wchat.freshchat.com/js/widget.js" ).done(( script, textStatus )=>{
    // run something
});
Run Code Online (Sandbox Code Playgroud)

但是如果我将整个代码放入其中,setTimeout则会出现错误browser console

// this will give error in browser console

setTimeout(()=>{
    $.getScript( "https://wchat.freshchat.com/js/widget.js" ).done(( script, textStatus )=>{
        // run something
    });
}, 4000);
Run Code Online (Sandbox Code Playgroud)

它会error屈服browser console

在此输入图像描述

问题是什么?

javascript jquery settimeout getscript

2
推荐指数
1
解决办法
1269
查看次数

为getScript()添加超时

我正在使用getScript()JQuery方法,但可以真正添加超时.有些脚本没有恢复为6-8秒的失败,这太长了.

这可能吗?

我搜索了一下,没有解决方案.

就像是:

$.getScript(a + "/myspeed/MySpeedServer/mss/js")
        .done(function() {
            //do stuff
        })
         .fail(function() {
            //do stuff
        });
         .timeout(2000)
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery timeout getscript

0
推荐指数
1
解决办法
1787
查看次数