Когда я загружаю HTML-страницу в элемент WPF Frame
, он запускает JavaScript иначе, чем если бы я загружал ту же страницу в веб-браузер, такой как IE. Почему это так, и есть ли способ сделать поведение Frame
таким же, как в браузере?
Если я загружаю следующий HTML-код в веб-браузер:
<!DOCTYPE html>
<script>
document.write('abc'[1])
</script>
выводит b
в Chrome, FireFox, Opera и даже IE. Но если я загружу этот же HTML в WPF Frame
:
<Frame Source="C:\Path\To\Page.htm" />
вместо этого выводится undefined
.
Почему разница в поведении? Я думал, что Frame
должен был использовать Internet Explorer для рендеринга, но, очевидно, он делает что-то другое.
Если я опускаю строку DOCTYPE
, то IE также выводит undefined
(хотя ни один из других браузеров не делает), что предполагает, что IE использует другую версию JavaScript (!), Когда страница не объявить себя HTML5. Но тогда я ожидал бы, что Frame
будет использовать ту же логику, и, очевидно, нет - он использует более старую версию JavaScript, не поддерживающую индексирование строк, даже когда я объявляю страницу HTML5.
Что заставляет Frame
запускать JavaScript иначе, чем IE?