Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery.getScript在移动设备上不工作_Javascript_Jquery - Fatal编程技术网

Javascript jQuery.getScript在移动设备上不工作

Javascript jQuery.getScript在移动设备上不工作,javascript,jquery,Javascript,Jquery,$。getScript即使在移动设备已连接internet的情况下也不工作。 我们如何为下面的代码编写jquery.getscript?我无法在脚本中加载我的url,因为如果移动设备没有internet,我的应用程序将不会启动,所以如果internet连接可用,我希望包含我的url。有人能帮我更正代码吗 if (states[networkState] == 'No network connection') { // Device with no network data connect

$。getScript
即使在移动设备已连接internet的情况下也不工作。 我们如何为下面的代码编写jquery.getscript?我无法在脚本中加载我的url,因为如果移动设备没有internet,我的应用程序将不会启动,所以如果internet连接可用,我希望包含我的url。有人能帮我更正代码吗

if (states[networkState] == 'No network connection') {
    // Device with no network data connection
    document.getElementById("location").innerHTML = "Location unavailable";
} else {
    // code for getting current address using Lat/Longs

    $.getScript("https://maps.googleapis.com/maps/api/js?sensor=true", function () {
        var geocoder;
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(latitude, longitude);
        geocoder.geocode({
            'latLng': latlng
        }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[0]) {
                    var add = results[0].formatted_address;
                    document.getElementById("location").innerHTML = "Location : " + add;
                } else {
                    document.getElementById("location").innerHTML = "No Results found ";
                }
            } else {
                //document.getElementById("location").innerHTML="Geocoder failed due to: " + status;
                alert("Geocoder failed due to: " + status);
            }
        });
    });
}
更新: 实际上,这里底部的东西是行不通的。谷歌是聪明的…回应是空的,但他们更聪明。。。如果您查看他们的API文档,您会发现它们允许您在请求中指定回调。所以你会这样做:

jQuery('body').append('<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&callback=address"/>')
jQuery('body')。追加(“”)
注意对
callback=address

这个故事的寓意是读API文档:D

我假设了但没用的东西: 它失败了,因为有些东西还没有定义。但是,如果查看返回的脚本,您将看到它正在从另一个脚本动态创建脚本标记(是的)

你可以:

  • $.getScript()
    回调中加载该脚本,然后在该回调中调用地址函数

    因为上面的URL可能是动态生成的,所以您可能希望使用正则表达式来解析第一个getScript响应,然后从该响应中提取URL用于回调。你应该考虑使用<代码> $.Ajax < /C> >而不是<代码> $.GETScript < /Cord>。这样你就可以使用<代码> Cache < /Cult>结果,否则它将使用一个随机数来重新请求脚本,每次都是新的。

  • <> >或者您可以考虑在回调中使用一个计时器来查找一个新变量或对象的存在,以知道它完成了加载(无论它以前失败了什么)


    networkState
    是一个变量吗?如果它是一个数组键,您可以像
    states.networkState
    states['networkState']
    那样引用它。states['networkState']没有问题。这是互联网连接状态。我的问题是$.getScript()函数。请建议我如何在代码中使用$.getScript()。到底是什么问题?您是否收到“地理编码器失败”警报?它有什么作用吗?它不是只在移动设备上工作,还是在桌面浏览器上都不工作?控制台中是否有错误?您的
    getScript()
    函数运行良好@KawineshSK您的意思是,如果您删除了几乎所有内容,该函数将正常工作?感谢您的回复。你能举个例子吗。