У меня есть довольно простой 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. Но почему? Я просто использую неправильный стандартный Javascript для Safari. К вашему сведению, это нацелено на работу в Mobile Safari.
Я не включал файлы XML и XSL, потому что они проприетарные и действительно отлично работают в других браузерах. Также ошибка исходит из консоли Javascript.
Ошибка:
TypeError: 'undefined' is not a function (evaluating 'xml.load(xmlfile)')
Я предполагаю, что это означает, что «нагрузка» не определена. Это правильно и если да, что мне с этим делать? AJAX, я уверен, работает в Safari!
Спасибо
Мт.