Почему WPF Frame обрабатывает JavaScript не так, как IE? - PullRequest
0 голосов
/ 30 октября 2011

Когда я загружаю 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?

1 Ответ

1 голос
/ 30 октября 2011

Используется более низкий двигатель.Я полагаю, вы проверили это на IE9?Ну, IE9 отделился от веб-браузера в стиле элемента управления ActiveX.Вам нужно использовать 'abc'.charAt(0) вместо abc[0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...