2017-01-29 2 views
0

Я пытаюсь использовать webview element в универсальном приложении, используя javascript. Моя цель - просмотреть некоторые веб-сайты, добавляющие мой собственный контент в его html-документ.UWP: webview не отображает страницу, используя метод navigateToString

Во-первых, я установил атрибут src webview на www.example.com, и он просматривает сайт. Это было сделано, чтобы убедиться, что веб-просмотр способен просматривать сайт.

Далее я попробовал получать HTML и загрузить его в WebView с использованием метода navigateToString так:

$.get(url, function (data) { 
     webView.navigateToString(data); 
    }); 

Это приводит к загрузке страницы из формы (aperarently некоторые .js или .css файлы не загружены или заблокирован от работы), или он даже не загружен.

Интересно, в чем разница, загружая страницу по URL-адресу и загружая его html вручную. И есть ли обходной путь, который я могу решить эту проблему.

Примечание: я новичок в js и html.

+1

Имеются ли ссылки css и js в загруженном вами hml с использованием относительного пути или абсолютного? Я бы не ожидал, что относительный путь для работы, если вы показываете строку html в элементе управления веб-просмотром –

ответ

1

Веб-страница обычно не состоит из одного файла HTML. Чтобы заставить его работать, вам нужно будет восстановить HTML, а также файлы javascript и css. Это может быть утомительной работой.

Если вы пытаетесь открыть что-то из Интернета, самым простым способом является выполнение регулярного navigate(), который возьмет URI в качестве параметра и выполнит «полный» просмотр (как будет делать браузер). Загрузка/загрузка CSS/JS будет выполнена для вас.

Если вы хотите открыть локальную страницу (локально для вашего приложения), navigateToString() - это хороший путь, но вам придется локально размещать на всех страницах зависимости (css/js fiels) или вставлять весь стиль и код в Сама HTML-страница.

+0

Но если я использую метод navigate(), я не смогу изменить просматриваемый документ, не так ли? –

+0

Вы не сможете изменить код страницы напрямую, но так как это веб-просмотр, вы можете использовать invokeScriptAsync() для выполнения некоторого javascript, который изменит страницу – Vincent

+0

Да, но для функции invokeScriptAsync() требуется, чтобы вызываемая функция скрипта была определенных в html-документе. Поскольку я не могу изменить html-документ, у меня нет функций скрипта для вызова. Вы знаете способ, которым я могу прикрепить свой скрипт к html-файлу, который не был создан мной? –

 Смежные вопросы

  • Нет связанных вопросов^_^