【发布时间】:2014-06-30 11:36:20
【问题描述】:
我有这段代码,它适用于所有浏览器,除了 Safari:
// Create a connection to the file.
var Connect = new XMLHttpRequest();
// Define which file to open and
// send the request.
Connect.open("GET", "<?php echo $fileName;?>", false);
Connect.setRequestHeader("Content-Type", "text/xml");
Connect.setRequestHeader("Cache-Control", "no-cache");
Connect.send();
// Place the response in an XML document.
var TheDocument = Connect.responseXML;
// Place the root node in an element.
var questions = TheDocument.childNodes[0];
// Retrieve each customer in turn.
for (var i = 0; i < 1; i++) {
console.log(i);
console.log("fake var");
var question = questions.children[0];
console.log(question);
}
变量 $filename 是我正在阅读的 XML 文件的 php 链接。 我有以下问题,代码运行到 For 循环中,我可以记录 var“i”和“fake var”。但是一旦我将 var question 定义为 questions.children[0],代码就会停止。我无法在 safari 中记录问题变量。
有什么想法吗? (也欢迎反馈,还在学习javascript/xml)
我的 XML 示例:
<?xml version='1.0' encoding="UTF-8" ?>
<Beantwoordt_kritiek id="1" admin="Jan Hut" categorie="Omgaan met elkaar" winswf="images/Kado (1).jpg">
<gebruikers_vraag1>
<vraag><![CDATA[Sleep de puzzelstukken naar het juiste vakje.]]></vraag>
<s_vraag><![CDATA[sounds/puzzel.mp3]]></s_vraag>
<thumb1><![CDATA[images/527puzzel1_1.jpg]]></thumb1>
<thumb2><![CDATA[images/527puzzel1_2.jpg]]></thumb2>
<thumb3><![CDATA[images/527puzzel1_3.jpg]]></thumb3>
<thumb4><![CDATA[images/527puzzel1_4.jpg]]></thumb4>
<vraagFoto><![CDATA[images/527puzzel1.jpg]]></vraagFoto>
</gebruikers_vraag1>
</Beantwoordt_kritiek>
【问题讨论】:
-
您是没有给我们 XHR 链接,还是您真的输入了
"<?php echo $fileName;?>"?后者不会执行 PHP(除非您以某种方式制作服务器……也许您可以在 PHP 中执行此操作,我是 Python 人)。另外,您能告诉我们您的 JavaScript 控制台中出现的任何错误吗? webmasters.stackexchange.com/questions/8525/… -
我使用 FireBug,但我在 Safari 中没有收到任何错误(在其他浏览器中也没有),由于某种原因它只是中断了。而且,我正在使用的文件是一个 .php 文件,因为我需要其他数据的变量。您可以通过停止 php 在 php 中使用 html,键入您的 html,并在需要时使用
<?php echo 'your php stuf'; />再次打开 php。 -
然后,xml 文件位于根目录中。所以如果你想测试,你可以替换 php echo $fileName for thisIsMyFile.xml
标签: javascript php html xml safari