Вопрос

Я использую EmbeddedWB (расширение Twebbrowser), чтобы сделать «живой предварительный просмотр» некоторого динамически сгенерированного контента.

Я пытаюсь добавить jQuery в микс, чтобы получить некоторые причудливые эффекты, однако, поскольку IE9 всегда спрашивает «разрешить заблокированный контент» для каждой проклятой страницы, динамически сгенерированной (webbrowser.loadfromString), безусловно, не разрешается веселиться. Проще говоря: это не позволит выполнить JavaScript.

Я попытался добавить SecurityManager в свой TembeddedWB, однако это тоже не сделало. Я проверил свой динамический код в Firefox и в IE9, и он работает (конечно, в IE9 я должен сначала разрешить, так я и нашел, что это была проблема безопасности).

Есть ли безболезненный способ обойти это, без необходимости вручную войти в IE и что -то настраивать? Или я совершенно не ошибаюсь в причине проблемы?

РЕДАКТИРОВАТЬ: После попытки Метод этой статьи, IE не спрашивает, должен ли это больше разрешать вещи, однако мой сценарий все еще не выполняется в моем Tembeddedwb/Twebbrowser ..

Редактировать 2: Хорошо, удалив код jQuery и отобразив простое предупреждение, я вынужден прийти к выводу, что JS сейчас выполняется, а JQuery - нет.

Редактировать 3: Вот (разделен) HTML -код, который генерирует мое приложение, где jQuery не работает в моем управлении EmbeddedWB/Twebbrowser - Однако, он работает в самом интернет -проводке 9:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <script type="text/javascript" src="file://C:\jQuery.js"></script>
</head>
<body>
    <center>
    <p>
      Some stuff here!
    </p>
    </center>

    <script type="text/javascript" language="javascript">
    $(document).ready(function(){
            alert('I Am jQuery!!!!');
    });
    </script>
</body>
</html>

Edit4: Я также попытался переключить src Для Google Hosted jQuery, и это тоже не сработало. Удаление метатага тоже не исправило. Просто сообщая вам о вещах, которые я попробовал, прежде чем тратить время на предложение :)

Edit5: Навигация на сайт, который использует jQuery (webbrowser.navigate), сайт работал, как и ожидалось. Однако, делая это из моего локального теста .html или, делая .LoadFromString();, она не будет работать.

Не будет работать = код jQuery, не выполняющий.

Это было полезно?

Решение

Похоже, работает, если вы используете правильный URL для файла jQuery.js:

<script type="text/javascript" src="file://C:/jQuery.js"></script>
<script type="text/javascript" src="file:///jQuery.js"></script>

или относительный путь, вы также можете опустить file:// Протокол:

<script type="text/javascript" src="../../jQuery.js"></script>

Приведенное выше работает при загрузке HTML из файла. Однако вопрос заключается в том, что если содержание из памяти и JavaScript из файловой системы не считается пересечением границы контекста безопасности и отклоняется по этой причине встроенным браузером. В этом случае встроение jQuery непосредственно в содержание HTML (с помощью <script> тег) должен работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top