Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用XMLHttpRequest加载页面时的奇怪行为_Javascript_Html_Xml_Ajax - Fatal编程技术网

Javascript 使用XMLHttpRequest加载页面时的奇怪行为

Javascript 使用XMLHttpRequest加载页面时的奇怪行为,javascript,html,xml,ajax,Javascript,Html,Xml,Ajax,我有这样一个脚本: var xml_http_request = new XMLHttpRequest(); xml_http_request.addEventListener('readystatechange', PageReady, false); xml_http_request.overrideMimeType("text/xml"); xml_http_request.open('GET', "index.xml", true); xml_http_request.send(null

我有这样一个脚本:

var xml_http_request = new XMLHttpRequest();
xml_http_request.addEventListener('readystatechange', PageReady, false);
xml_http_request.overrideMimeType("text/xml");
xml_http_request.open('GET', "index.xml", true);
xml_http_request.send(null);

function PageReady()
{
    if(this.readyState != 4)
        return;
    var Doc = this.responseXML;
    alert(Doc.getElementById("page1"));
}
和index.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<page id="page1">
<layer id="layer1">
    <hook to="page1" edge="top" distance="10px" />
    <hook to="page1" edge="left" distance="10px" />
    <hook to="page1" edge="right" distance="10px" />
    <hook to="page1" edge="bottom" distance="10px" />
</layer>
</page>

我看到的警报包含消息:
null
,这是不正确的,因为文档获取的元素具有
id
page1

在Google Chrome的Inspector中查看,
Doc
有一个子元素,其属性
id
设置为
page1


为什么不工作?

这是因为getElementById通常只在html/xhtml上工作。您可以通过修改数据以使其采用xhtml格式而不是纯XML来解决这个问题,或者可以尝试向文件中添加一些XML DTD,以便getElementById能够工作

比如:

<!ELEMENT page>
<!ATTLIST page id ID>


查看更多信息。

这是因为getElementById通常只适用于html/xhtml。您可以通过修改数据以使其采用xhtml格式而不是纯XML来解决这个问题,或者可以尝试向文件中添加一些XML DTD,以便getElementById能够工作

比如:

<!ELEMENT page>
<!ATTLIST page id ID>


查看更多信息。

添加了以下行:和dtd.dtd文件:它不工作,在inspector资源中,dtd.dtd文件甚至没有加载。添加了以下行:和dtd.dtd文件:它不工作,在inspector资源中,dtd.dtd文件甚至没有加载。