加载js文件之前不执行javascript(异步)
我有一个用ajax加载的js代码,但该代码是用户生成的,因此我无法控制代码。例如,用户可以从某处复制粘贴代码加载js文件之前不执行javascript(异步),javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一个用ajax加载的js代码,但该代码是用户生成的,因此我无法控制代码。例如,用户可以从某处复制粘贴代码 $.post('url', null, function(data, textStatus, xhr) { $('#someID').html(data) }); 回应吼叫 <!-- AddThis Smart Layers BEGIN --> <!-- Go to http://www.addthis.com/get/sm
$.post('url', null, function(data, textStatus, xhr) {
$('#someID').html(data)
});
回应吼叫
<!-- AddThis Smart Layers BEGIN -->
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=xa-52cfba37486a2e20"></script>
<script type="text/javascript">
addthis.layers({
'theme' : 'transparent',
'share' : {
'position' : 'left',
'numPreferredServices' : 5
}
});
</script>
<!-- AddThis Smart Layers END -->
但是当我使用AJAX.load加载时,我在“addthis”上出现了一个错误,因为脚本在加载addthis_widget.js之前运行
这段代码只是一个示例,所以我正在寻找一个全局解决方案。
您能帮我解决这个问题吗?AJAX.load方法有一个回调函数,在加载完成时运行
$(document).ready(function(){
$( "#result" ).load( "ajax/test.js", function(data){
//callback
} );
});
或者您可以使用jquerygetscript方法
$.getScript( "ajax/test.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
});
document.ready,它非常简单用户可以在一个字段中有两个字段,他们可以在第二个字段中粘贴指向.js文件的链接,他们可以编写或粘贴他们的js代码,所以当您首先加载时,您将从第一个字段加载数据,我认为这可能会起作用$document.readyfunction{;这就是你想要的吗?如果以后要加载脚本,可以使用该.load将函数添加到.loadfunction{};所有这些都发生在document.ready状态之后。这不会有帮助。我不完全清楚你的意思,但也许你可以将它封装在一个函数中,在用户单击按钮后或以某种方式调用该函数?我不仅通过axaj加载htmlin示例脚本,而且在响应中的代码执行之前添加到dom中,然后脚本laodsi不包括js文件,我正在加载可以包含js的html代码。我不包括js文件,我正在加载可以包含js的html代码。我不包括js文件,我正在加载html代码,其中可能包含jsI了解回调,但所有这些代码都是由用户生成并通过ajax附加到dom中的。我不知道名称什么用户粘贴我不知道名称什么用户粘贴我不明白。但是顺便说一句,你可以用我的答案替换上面的默认AddThisJavaScript代码来让它工作。哦,好的。我想我明白了。很抱歉
<!-- AddThis Smart Layers BEGIN -->
<script>
$.getScript('http://s7.addthis.com/js/300/addthis_widget.js#pubid=xa-52cfba37486a2e20', function() {
// alert('Loaded!');
addthis.layers({
'theme': 'transparent',
'share': {
'position': 'left',
'numPreferredServices': 5
}
});
});
</script>
<!-- AddThis Smart Layers END -->