当我将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的原因是什么?
答案 0 :(得分:1)
它使用较低的引擎。我假设你在IE9上测试过它?好吧,IE9脱离了ActiveX控件风格的Web浏览器。您需要使用'abc'.charAt(0)
代替abc[0]
。