【发布时间】:2011-10-08 00:45:52
【问题描述】:
我这里有一些非常基本的 Javascript,它在 Firefox 中运行良好,但在 Safari 中呈现时,什么都不做。
<html>
<head>
<script type="text/javascript">
function XsltTransform(xmlfile, xslfile) {
var xml = document.implementation.createDocument("", "", null);
var xslt = document.implementation.createDocument("", "", null);
xml.async = false;
xslt.async = false;
xml.load(xmlfile);
xslt.load(xslfile);
var processor = new XSLTProcessor();
processor.importStylesheet(xslt);
var XmlDom = processor.transformToDocument(xml)
var serializer = new XMLSerializer();
var output = serializer.serializeToString(XmlDom.documentElement);
var outputDiv = document.getElementById("contentbody");
outputDiv.innerHTML = output;
}
</script>
</head>
<body>
<div id="main">
<div id="menu">
<div id="categorytitle">
Categories</div>
<ul id="categorybody">
<li><a href="javascript:void(0)" onclick="XsltTransform('category.xml','category.xslt');">Latest news</a></li>
</ul>
</div>
<div id="content">
<div id="contenttitle">
Content</div>
<div id="contentbody">
Body
</div>
</div>
</div>
</body>
</html>
javascript 错误表明 onclick 调用正在调用未知函数:XsltTransform。但为什么?我只是为 Safari 使用了错误的标准 Javascript。仅供参考,这是针对在 Mobile Safari 中工作的。
我没有包含 XML 和 XSL 文件,因为它们是专有的,并且它们在其他浏览器中确实可以正常工作。此外,错误来自 Javascript 控制台。
错误:
TypeError: 'undefined' is not a function (evaluating 'xml.load(xmlfile)')
我认为这意味着“加载”是未定义的。这是正确的,如果是,我该怎么办?我敢肯定,AJAX 确实可以在 Safari 中使用!
谢谢,
马特。
【问题讨论】:
标签: javascript html xml xslt safari