JScript.js という名前の JavaScript ファイルがあります。このファイルには、以下の関数が含まれています。つまり、ドットネット ページへの 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>