'获得'数据从xml通过javascript输入到html(初学者)
'Getting' data from xml to input into html via javascript (Beginner)
-更新代码使其…更简单--
有点奇怪的情况,根据w3schools的说法,我的代码应该可以工作,但由于某种原因,它不。。。连接这是我的java脚本的代码。
XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
</head>
<body>
<p id="intro">Hello</p>
<script type="text/javascript" id="announce" src="announce.js"></script>
</body>
</html>
JavaScript
/*jscript*/
var newannouncement = document.createElement('p');
newannouncement.id = 'announcing';
newannouncement.appendChild(document.createTextNode('Here is an announcement'));
var scr = document.getElementById('announce');
scr.parentNode.insertBefore(newannouncement, scr);
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
**xmlhttp.open("GET", "catalog.xml",false);**
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("cd");
for (i=0; i<x.length; i++)
{
alert("for")
}
XML
<?xml version="1.0"?>
<catalog
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="catalog.xsd">
<cd>
<author>Ferdi</author>
<date>1192</date>
</cd>
<cd>
<author>JRR</author>
<date>1995</date>
</cd>
</catalog>
更新1
由于我认为前面的代码太令人困惑,所以我对它进行了更改,使其更简单,这样我就可以真正发现到底是什么在破解。问题似乎是xmlhttp.open(),因为for循环没有运行。我已经切换到xhtml,因为它保留了代码。。。更容易阅读(对我来说),我理解document.write()不起作用。
问题
我只是直接调用函数。*表示发生故障的线路。现在,我尝试将其保留为announce.xml(将announcexml保留在同一目录中),现在我尝试将它向下移动到一个目录中。我还尝试添加/../但无济于事。
我在w3schools网站上没有看到任何"技术"要求。。。所以我假设它像html一样开箱即用。
进一步说明
如果可能的话,如果你打算推荐AJAX等技术,你能描述一下它是什么,它做了什么,如果可能,还可以提供一个合适的地方的链接来了解更多信息吗。感谢
。
您是否在浏览器中使用调试器(Firefox的FireBug扩展,或Chrome或IE内置的扩展)?调试器中的控制台是否报告错误?调试器还可以跟踪浏览器发出的请求。它显示了你的请求吗?
有几个点与您的问题无关:
- 对w3schools要非常小心。尽管它的名字与W3C无关,而且质量往往非常缺乏
- 你没有使用jQuery这样的AJAX框架有什么特别的原因吗?(如果你想了解AJAX的基本原理,不使用它是很好的,但框架确实简化了一切)
- 您正在执行同步请求,而这是不应该执行的。同步请求会阻止浏览器,使其对用户无响应
- 使用
document.write
时需要非常小心。它只在页面加载期间工作,并且因为您正在执行同步请求。在其他情况下,你可以很容易地用它"覆盖"你的页面
编辑:
问题很可能是@bazmagakapa所建议的:XMLHttpRequest
通常只在网络服务器上工作。您需要做的是在开发计算机上本地安装一个web服务器,并使用它进行测试。这通常很简单。即使是Apache也可以快速安装并运行,只需很少的配置。或者是一个包含Apache的包,其中包括一个名为"AMP"的数据库服务器(MySQL)和PHP,它们通常是专门为本地网页开发和测试而设计的,设置起来更容易。最后,许多web开发IDE都内置了一个简单的web服务器(例如,我喜欢Aptana Studio)。
您所做的通常被称为"AJAX",它代表"异步JavaScript和XML",但您不应该异步进行。看看Mozilla开发者网络的一个简短教程,了解如何正确操作:https://developer.mozilla.org/en/AJAX/Getting_Started
如果你仍然有问题,那么你需要提供更详细的信息,最重要的是浏览器在控制台中给出的错误消息(请参阅我上面对调试器的评论)。
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 如何使用javascript或html下载PDF格式的填写表单
- 视频HTML没有'无法在Internet Explorer 11上工作
- js初学者-如何获得网页中所选内容的html以及整个节点层次结构
- JS/HTML |在点击时提交,当它是 POST 形式时(js 初学者)
- 初学者JavaScript / HTML框架通信
- '获得'数据从xml通过javascript输入到html(初学者)
- 我的Html 5 Javascript Canvas游戏代码有什么问题?我是初学者
- Javascript初学者试图将其连接到HTML
- 如何使用JavaScript加载本地JSON文件来更新html中的选择列表??(期待简单的答案,我只是一个初学者)