gpt4 book ai didi

javascript - Ajax XML 请求无法正常工作

转载 作者:行者123 更新时间:2023-11-29 20:13:24 25 4
gpt4 key购买 nike

我正在尝试执行一个简单的 ajax 请求,以便在选择下拉列表中的值时加载一些 XML。 XML 包含我根据用户选择切换的图像路径。它在 Firefox 中运行良好(我没有收到任何 Javascript 错误),但由于某种原因在 Chrome 中没有任何反应。这是我到目前为止所拥有的:

        <script type="text/javascript">
function loadXMLDoc(url) {

var xmlhttp;
var txt, txtBase, txtOverlay1, txtOverlay2, txtBlack, name, img;

if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, & Safari
xmlhttp=new XMLHttpRequest();
xmlhttp.overrideMimeType("text/xml");
}
else {
// code for IE6 & IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4 && xmlhttp.status==200) {

txtBase='<img id="original"';
txtOverlay1='<img id="overlay1" class="overlay"';
txtOverlay2='<img id="overlay2" class="overlay"';
txtBlack='<img id="opacity" class="overlay"';

img=xmlhttp.responseXML.documentElement.getElementsByTagName("IMG");
name=img[0].getElementsByTagName("NAME");

txtBase = txtBase + name[0].firstChild.nodeValue + '/>';
txtOverlay1 = txtOverlay1 + name[1].firstChild.nodeValue + '/>';
txtOverlay2 = txtOverlay2 + name[2].firstChild.nodeValue + '/>';
txtBlack = txtBlack + name[3].firstChild.nodeValue + '/>';

txt = txtBase + txtOverlay1 + txtOverlay2 + txtBlack;
document.getElementById('inner_container').innerHTML = txt;
$(".red").css({"font-size":"2.0em"});
$(".blue, .green").css({"font-size":"1.0em"});
}
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
</script>

我用这个来调用它。

            <select>
<option id="selected">Select a car</option>
<option onclick="loadXMLDoc('http://www.brandybrowauto.com/files/nissan.xml')">Nissan</option>
<option onclick="loadXMLDoc('http://www.brandybrowauto.com/files/mazdaspeed3.xml')">Mazdaspeed3</option>
</select>

非常感谢任何帮助让它在 Chrome 中工作的帮助,以及任何使代码更好的提示。我是 ajax 的初学者。

最佳答案

此代码的任何部分是否适用于您网站上的 Chrome?如果是这样,它能走多远?如果您还没有这样做,您应该使用 Chrome 开发者工具并在您的 javascript 中设置断点并单步执行代码,直到它按预期停止工作。

如果我不得不猜测发生了什么——Chrome 可能不喜欢您正在使用的事实

xmlhttp.onreadystatechange

这一行应该是:

xmlhttp.onload

编辑内容:

查看您的代码(基于您的评论回复)后,您似乎永远无法触发您选择的 onclick 事件。我玩弄代码来测试它,确保它不会运行。以下根本不会发生,因为此事件不会触发。

<option onclick="alert('test');">Nissan</option>

取而代之,不要使用来自选项的事件。使用选择中的 onchange 事件。

<select onchange="alert(options[selectedIndex].text);">

请试试这个,然后告诉我你是否满意。您可以使用此信息来触发您的 xmlhttp 逻辑。

关于javascript - Ajax XML 请求无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425955/

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