首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何允许IE9 MSXML6执行包括javascript在内的集成XSLT处理?

如何允许IE9 MSXML6执行包括javascript在内的集成XSLT处理?
EN

Stack Overflow用户
提问于 2012-05-03 13:51:46
回答 3查看 3.6K关注 0票数 1

IE9默认应用MSXML6,其中IE8应用MSXML3。在MSXML6中某些功能默认是关闭的,这会带来麻烦,特别是在加载以下页面时

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>...</root>

其中所引用的xslt样式表应用嵌入式javascript (例如,自定义扩展函数)。

可以在脚本代码中设置DOM xslt属性,例如在Jscript中:

代码语言:javascript
复制
var xsltDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xsltDoc.setProperty("AllowXsltScript", true);
xsltDoc.loadXML(xsltfile);

但是,当加载上面提供的文件时,IE9会自动加载该xslt文件,并带有默认值。这与IE8有一个显著的不同:IE8将完美地加载页面,但是IE9会抛出一个错误,因为默认的MSXML6 DOM objects属性“允许xslt = false”。,这不是真的--见下面的答案。因此,问题的其余部分是微不足道的

如何触发IE9来加载上面的文件,并且仍然允许在xslt中运行脚本?

注意:我已经按照msdn上的建议尝试了Internet选项/Security/Custom./ Scripting /Active Scripting= Enable,但该设置已经正确。

我希望有一个特定的IE9处理指令可用,但我想没有,但也许这是一个特殊的样式表属性,配合IE9 IE9加载。

结论还可能是,只有在主html文件上运行脚本才能做到这一点,在该文件中不进行自动加载,但是XML和XSLT被加载到具有指定属性(如AllowXsltScript)的指定DOM对象中,然后将转换的输出显式加载到浏览器中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-14 09:33:53

我被误导了。首先,触发古怪模式的不是IE安全设置,而是(缺少) doctype。其次,正如在xslt8690-xslt-processing-failed中所看到的,不触发本地文件异常的真正原因是与区域无关的IE9安全设置。

因此,DOM设置不起任何作用--当IE加载xml或xslt时,allowXsltScript属性似乎自动设置为true。

票数 0
EN

Stack Overflow用户

发布于 2012-05-03 14:37:39

我在http://home.arcor.de/martin.honnen/xslt/test2012050301.xml上尝试了一个例子,样式表是http://home.arcor.de/martin.honnen/xslt/test2012050301.xsl,在Windows 7上,它对我和IE9都很好。基于此,即使IE9使用MSXML 6来执行样式表,也可以启用脚本。如果您得到一个错误,一定有其他原因,或一定有一些特殊的东西,您的代码,您将需要张贴最小但完整的细节,让我们重现问题。

票数 1
EN

Stack Overflow用户

发布于 2012-07-05 03:36:04

我有一个网页,它使用内置浏览器支持(在IE9,MSXML6中)执行JavaScript调用的客户端XSLT。JavaScript使用Ajax调用将XSLT样式表(静态.xsl文件)从服务器加载到XSLT处理器对象变量。要转换的XML位于由JavaScript创建的XML文档对象变量中。XML文档的内容基于页面上的textarea元素的值。

XSL转换适用于所有目标浏览器的当前版本(Firefox、Chrome、Safari),但IE9除外,后者报告了错误:

“不支持在DTD中使用默认名称空间声明属性。”

我尝试了很多事情,但都没有结果。最后,我凭直觉,在我的脖子后面竖起了头发,我插入了这个属性:

xmlns="http://www.w3.org/1999/xhtml

在网页的html元素中。不是在正在转换的XML文档中,而是在包含调用XSLT转换的JavaScript的网页中。

错误消失了。该网页现在在IE9中工作。

(该网页还包含一个XML声明和一个XHTML1.0严格的DOCTYPE。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10432821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档