gpt4 book ai didi

javascript - 无法调用 Ajax Javascript 方法

转载 作者:行者123 更新时间:2023-11-28 10:32:51 27 4
gpt4 key购买 nike

我用这个方法来动态加载 JavaScript 函数。它确实包含 .js 文件,但是当我调用一个方法时,该方法说它是未定义的。以下两个 .js 文件是 ajax_object.jsuser_manager.js

函数外部的警报被读取并起作用,但内部的警报却不起作用。

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");



}

最佳答案

您的代码有点奇怪,您都为脚本 block 提供了 src 和正文,似乎包含相同的脚本。

我看到有两种方法可以做到这一点,要么简单地向 header 添加一个脚本 block ,包括一个 src,不需要 ajax 调用(我以前从未见过这样做,所以不能保证会发生什么)。或者您使用 ajax 调用加载脚本并评估返回的内容,您必须注意范围,否则您最终可能会下载的脚本在执行评估的函数的范围内声明内容,但否则它就是这样的蛋糕。

如果将 includeJavaScript 调用替换为:

eval("with(window){"+XMLHttpRequestObject.responseText+"}")

我不明白为什么它不起作用。

关于javascript - 无法调用 Ajax Javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com