繁体   English   中英

使用JavaScript加载XSL文件

[英]Loading XSL file with javascript

我正在构建一个Web应用程序,它将以ascii编写的数学方程式转换为MathML格式,然后将MathML格式转换为OMML格式。 为此,我找到了一个xsl文件,该文件使用XSLTProcessor将MathML转换为OMML。 在我的脚本中,我设法构建了MathML文件并进行了加载和转换,但使用以下方法加载xsl文件时遇到了严重的麻烦:

    var xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet("MML2OMML.XSL");

该应用程序仅是客户端,它将用于单个用户,因此没有服务器。 因此,知道chrome存在权限问题:

Access-Control-Allow-Origin不允许使用Origin null。

我了解到,除非我将FileReaderHTML5一起使用 ,否则无法从本地文件系统加载xsl文件,但这需要我使用表单输入,而且我不希望这样做。

所以我尝试使用XMLHttpRequest将文件放在我的保管箱上的公用文件夹中,使用以下代码:

    var request = new XMLHttpRequest();
    var url = "http://dl.dropbox.com/u/27440550/MML2OMML.XSL";
    request.open("GET",url,true);
    request.send();
    console.log(request.responseXML);

而且我仍然有相同的错误

Access-Control-Allow-Origin不允许使用Origin null。

Chrome检测到正在访问的文件是本地文件时,会不会生成此错误? 他为什么在公用存储(Dropbox)上将文件视为本地文件?

寻找答案已经两天了,我真的很沮丧。 有人可以为我提供解决方案吗? 谢谢:)!

如果您从file:///作为脱机应用程序运行该应用程序,那么XSLT文件处于联机状态就没有关系; 两种来源都必须一致,并且对于您的应用程序,它仍然是“空”的,因此您将无法获得该XSLT文件。 如果该应用程序确实仅是客户端应用程序,则将XSLT文件作为客户端获得该应用程序时下载的数据的一部分,并将其存储为base64编码的文本,以便您可以将其解压缩并注入Javascript,也可以将其放置与index.html放在同一目录中,然后使生成的XML加载样式表作为相对链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM