我使这个方法动态加载JavaScript函数。它包含.js
文件,但是当我调用一个方法时,该方法说明它是未定义的。以下两个.js
文件是ajax_object.js
和user_manager.js
。Ajax Javascript方法不能调用
函数外部的警报被读取和工作,但内部的警报没有。
enter code here
//ajax_object.js
//Load a javascript library
function loadJavascript(src, url){
XMLHttpRequestObject=getXmlHttpRequestObject();
if(XMLHttpRequestObject){
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4){
if (XMLHttpRequestObject.status == 200 || XMLHttpRequestObject.status == 304) {
includeJavaScript(src, url, XMLHttpRequestObject.responseText);
}
}
}
}
XMLHttpRequestObject.open('GET', url, true);
XMLHttpRequestObject.send(null);
}//end LoadJavaScript
//Add Library to header
function includeJavaScript(src, fileUrl, xmlObject) {
if ((xmlObject != null) && (!document.getElementById(src))){
var documentHead = document.getElementsByTagName('HEAD').item(0);
var includeScript = document.createElement("script");
includeScript.language = "javascript";
includeScript.type = "text/javascript";
//includeScript.id = src;
includeScript.src=fileUrl.concat(src);
includeScript.defer = true;
includeScript.text = xmlObject;
documentHead.appendChild(includeScript);
}
}
//user_manager.js
//First alert is read
alert("Outside User Manager");
function selectUserManagerModuleType(){
XMLHttpRequestObject=getXmlHttpRequestObject();
//This doesn't work
//throws selectUserManagerModuleType undefined
alert("Inside The User Manager");
}
您能否确认,例如使用Firebug中的'net'选项卡,脚本真的被加载了吗?使用net – 2010-04-04 16:40:55
,我得到这样的: GET user_manager.js 304修改 萤火虫也说明这一点: ”; – user293313 2010-04-04 17:16:31
我想知道如果将函数赋值给一个变量并以这种方式调用它会发生什么...... – 2010-04-04 17:30:28