我有一个名为JavaScript的JScript.js文件,该文件在下面包含一个函数,即对点-net页面的ajax调用。
alert('jscript.js called');
function AddTag() {
var htag = document.getElementById("hdntag").value.split('|');
var texttag = document.getElementById("taginput").value;
for (i = 1; i < htag.length; i++) {
var onetag = htag[i].split(',');
if (onetag[0] == texttag) {
alert("Already Exist!!!");
return false;
}
}
$(document).ready(function () {
$.ajax
({
type: "POST",
url: "Checked.aspx/AddTag",
data: "{'TagName': '" + $('#taginput').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (msg) {
document.getElementById("hdntag").value += '|' + texttag + ',' + msg.d;
Makeedittabletaghtml();
}
})
});
document.getElementById("taginput").value = "";}
我试图异步地将这个JavaScript文件加载到页面中,但我只得到了警报,即‘jscript.js调用’,但是下面的函数不是异步加载JavaScript文件的代码。
(function() {
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.src = 'JScript.js';
dsq.async = true;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();但是,当我将文件包含到页面中时,它会运行并执行良好。
<script type="text/javascript" src="JScript.js"></script>发布于 2012-05-07 19:16:27
您可以使用.getScript() jQuery函数来完成以下操作:
$.getScript("JScript.js", function(){
alert("Script loaded and executed.");
// here you can use anything you defined in the loaded script
});发布于 2012-05-07 19:29:26
Farhan已经回答了,无论如何,只有在加载页面和dom准备就绪时,document.ready才会触发,所以首先按如下所示进行JScript.js
alert('jscript.js called');
function AddTag() {...}
function myReadyFunc(){
$.ajax({
...
...
});
}然后使用$.getScript加载文件并调用您的myReadyFunc(),后者将调用ajax
$.getScript("JScript.js", function(){
alert("Script loaded and executed.");
myReadyFunc();
});参考: 这里。
https://stackoverflow.com/questions/10487675
复制相似问题