Javascript jQuery$.getScript有一半时间无法工作
我正在使用jQuery从cordova onDeviceReady函数中的Mapquest加载脚本。但是,有一半的时间脚本加载不正确,无法使用函数Javascript jQuery$.getScript有一半时间无法工作,javascript,jquery,ajax,cordova,mapquest,Javascript,Jquery,Ajax,Cordova,Mapquest,我正在使用jQuery从cordova onDeviceReady函数中的Mapquest加载脚本。但是,有一半的时间脚本加载不正确,无法使用函数 $.ajax({ url: "http://www.mapquestapi.com/sdk/leaflet/v2.s/mq-geocoding.js?key=sv99PLA3H8jGWSa1a097UKewBWrNWLWN", dataType: 'script', success: function(){alert('
$.ajax({
url: "http://www.mapquestapi.com/sdk/leaflet/v2.s/mq-geocoding.js?key=sv99PLA3H8jGWSa1a097UKewBWrNWLWN",
dataType: 'script',
success: function(){alert('hello')},
async: false
});
我是否可以更改任何内容以确保脚本始终正确加载?脚本始终能够发出警报(“hello”),但即使如此,函数也不会始终正常工作。您可以在不使用
$的情况下动态加载脚本。getScript
函数如下所示:
function loadScript ( src, callback )
{
var script = document.createElement ( 'script' );
script.type = 'text/javascript';
script.async = true;
script.onerror = function ( err )
{
throw new URIError('The script ' + err.target.src + ' is not accessible.');
}
if(callback && typeof callback == 'function')
script.onload = callback;
document.head.appendChild(script);
script.src = src;
}
它所做的是:
onerror
和onload
事件提供脚本加载的反馈李>
src
,使其实际加载loadScript ( "http://www.mapquestapi.com/sdk/leaflet/v2.s/mq-geocoding.js?key=sv99PLA3H8jGWSa1a097UKewBWrNWLWN", function ( )
{
alert(1);
} );
兼容性
请记住,async属性并非在所有浏览器上都有效:不要使用
async:false
。(在这里它甚至不起作用)但是,在从stackoverflow的一个用户那里读到另一个解决方案后,我尝试过,即使在更改之前,也存在同样的问题。问题是什么?问题是,有时我可以从脚本调用函数,但有时我不会。您是否尝试过包含标记并将回调附加到onLoad事件?