为什么WPF的Frame处理JavaScript与IE不同?

时间:2011-10-30 00:52:48

标签: javascript wpf cross-browser

当我将HTML页面加载到WPF Frame元素时,它运行JavaScript的方式与我将同一页面加载到IE浏览器中的方式不同。为什么会这样,是否有任何方法可以使Frame的行为与浏览器相匹配?

如果我将以下HTML加载到Web浏览器中:

<!DOCTYPE html>
<script>
document.write('abc'[1])
</script>

它会在Chrome,FireFox,Opera甚至IE中输出b。但是,如果我将相同的HTML加载到WPF Frame

<Frame Source="C:\Path\To\Page.htm" />

它会输出undefined

为什么行为不同?我认为Frame应该使用Internet Explorer进行渲染,但显然它正在做一些不同的事情。

如果我离开DOCTYPE行,那么IE也输出undefined(虽然没有其他浏览器这样做),这表明IE正在使用不同版本的JavaScript(!)页面不声明自己是HTML5。但是我希望Frame使用相同的逻辑,显然它不会 - 它使用旧的,不支持字符串索引的JavaScript版本,即使我将页面声明为HTML5。 / p>

导致Frame以不同于IE的方式运行JavaScript的原因是什么?

1 个答案:

答案 0 :(得分:1)

它使用较低的引擎。我假设你在IE9上测试过它?好吧,IE9脱离了ActiveX控件风格的Web浏览器。您需要使用'abc'.charAt(0)代替abc[0]