fail xml:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<acc>
<user>zhangsan</user>
<psd>123456</psd>
</acc>
<acc>
<user>lisi</user>
<psd>654321</psd>
</acc>
</urlset>
Kod js adalah seperti berikut:
function showHint(str) {
"user static";
var xmlhttp = new XMLHttpRequest();
var psd_text = document.getElementById("psd_text");
if (str.length == 0) {
psd_text.innerHTML = "";
return;
}
xmlhttp.open("GET", "acc.xml", true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
var acc_node = xmlhttp.responseXML.documentElement.getElementsByTagName("user");
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
for(var i = 0; i < acc_node.length; i++){
if(acc_node[i].firstChild.nodeValue.indexOf(str)){
psd_text.innerHTML = acc_node[i].lastChild.nodeValue;
}
}
}
}
}
Kod html adalah seperti berikut:
<body>
<h3>请在下面的输入框中输入用户名:</h3>
<form>
<label>用户名:</label><input type="text" id="user_input" value="" onkeyup="showHint(this.value)" />
</form>
<p>密码:<span id="psd_text"></span></p>
</body>
Saya mempelajari contoh dalam w3school dan ingin menukarnya untuk memasukkan nama pengguna, kemudian mencari nod yang mengandungi nama pengguna dalam fail xml, dan akhirnya memaparkan kata laluan.
Google Chrome sentiasa melaporkan ralat: Tidak dapat membaca sifat 'documentElement' null.
Dan Firefox melaporkan ralat: xmlhttp.responseXML adalah batal.
Saya sudah lama tidak dapat memikirkannya, jadi saya datang ke sini untuk meminta bantuan.
Ralat yang dilaporkan dalam kod anda mestilah ayat ini:
Seperti yang dinyatakan di atas, permintaan itu tidak berjaya pada masa ini, jadi xmlhttp.responseXML adalah batal, jadi ralat akan dilaporkan. Cuba tulis kod ini dalam pernyataan if yang menentukan status ajax.
Terima kasih banyak, ia telah diselesaikan. (Hantar bunga secara manual