Я хотел бы использовать jQuery в элементе управления WinForms WebBrowser, но без доступа к jQuery через ссылку на URL-адрес (т.е. я хочу вставить jQuery в свой приложение и получить его оттуда). Есть ли способ сделать это? Если да, то как его нужно встраивать (например, в файл содержимого) и что такое html для его использования?Как вставить jQuery в приложение WinForms для использования в элементе управления WebBrowser
0
A
ответ
1
Кажется довольно прямолинейным. Просто возьмите файл, загрузите его в элемент сценария и добавьте его в DOM.
Вот как я бы подойти к нему:
Скачать отсюда: https://code.jquery.com/jquery-2.2.4.min.js или здесь https://code.jquery.com/jquery/
загрузить его в файл с помощью File.ReadAllText Затем вставьте его в DOM.
Вот как вы можете сделать это:
private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
HtmlElement he = webBrowser1.Document.CreateElement("script");
string jquery = System.IO.File.ReadAllText("jquery.js");
he.InnerHtml = jquery;
wb.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.AfterEnd, he);
}
Вы можете также вводить его из КДС так:
private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
HtmlElement he = webBrowser1.Document.CreateElement("script");
mshtml.HTMLScriptElement script = he.DomElement as mshtml.HTMLScriptElement;
script.src = "https://code.jquery.com/jquery-3.1.1.min.js";
wb.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.AfterEnd, he);
}
Вы также можете получить его через КДС. –
Спасибо. Пробовал ваши предложения, но столкнулся с этими проблемами: (1) открыл файл 2.2.4.min после загрузки, просто чтобы посмотреть на него и получил ошибку в строке 2 char 7332, в которой «n» является нулевым или не является объектом (код: 800A138F). (2) создание элемента сценария в обработчике событий DocCompleted с использованием 1-го подхода заставил обработчик события завершить работу перед выполнением другого кода, который у меня есть. (3) обходит # 2, напрямую добавляя скрипт в мой исходный код html (содержимое файла заключено в квадратные скобки с помощью тегов