本文目錄一覽:
- 1、CWebBrowser2用JS操作HTML代碼,該怎麼處理
- 2、c#的webbrowser調用本地javascript腳本?
- 3、請教:如何在Delphi 的 Webbrowser 里 調用或執行 JS 帶參 函數或過程?
- 4、C# webbrowser 里如何調用網頁里的js函數?
- 5、webbrowser 執行網頁中的JS
CWebBrowser2用JS操作HTML代碼,該怎麼處理
JS輸入輸出HTML代碼有2種方式:
1、在需要輸出的的位置寫JS代碼:scriptdocument.write(‘需要輸出的內容’)/script
比如:
ul
scriptdocument.write(‘lia href=”/wap2/newsPage/1320″5/a/lilia href=”/wap2/newsPage/1319″4/a/lilia href=”/wap2/newsPage/1318″3/a/lilia href=”/wap2/newsPage/1317″2/a/lilia href=”/wap2/newsPage/1316″1/a/li’);
/script
/ul
2、採用js的innerHTML方法:
例子;
ul id=”ul”/ul
script
document.getElementById(“ul”).innerHTML=’lia href=”/wap2/newsPage/1320″5/a/lilia href=”/wap2/newsPage/1319″4/a/lilia href=”/wap2/newsPage/1318″3/a/lilia href=”/wap2/newsPage/1317″2/a/lilia href=”/wap2/newsPage/1316″1/a/li’;
/script
c#的webbrowser調用本地javascript腳本?
你好!
你的意思是調用你自己寫的JS文件,而不是鏈接過去頁面裏面的腳本對吧!
其實你可以換個思路的。
webBrowser1.Navigate();
webBrowser1鏈接這個網頁後,它的DocumentText 裏面就有內容了。這個時候你可以把你的腳本動態寫到網頁上去的。示例:
webBrowser1.DocumentText + = ” script type=’text/javascript’function Alert_{ alert(‘hello world’);} /script”;
然後再使用方法webBrowser1.Document.InvokeScript(“Alert_”);調用即可
如果是本身存在的腳本,直接用上面的方法就行了。
請教:如何在Delphi 的 Webbrowser 里 調用或執行 JS 帶參 函數或過程?
在 delphi 里,使用 WebBrowser 執行 js 代碼,參閱以下示例:
procedure TForm1.btn1Click(Sender: TObject);
var
doc:olevariant;
str:string;
begin
doc:=wb1.Document;
//執行js
wb1.OleObject.document.parentWindow.execScript(‘zbxxcx(“50E13DA0-728B-455E-89EC-18B71477C47E”)’,’JavaScript’);
end;
C# webbrowser 里如何調用網頁里的js函數?
webBrowser1.Navigate(“javascript:alert(‘hello’);”);
說明
webBrowser1.Navigate(“javascript:[你要執行的javascript語句];”);
如果你要執行那個函數代碼如下:
webBrowser1.Navigate(“javascript:test.work(‘1′,’0′,’5’);”);
webbrowser 執行網頁中的JS
在界面上拖入QAxWidget並指定控件為{8856F961-340A-11D0-A96B-00C04FD705A2},這個值可以通過OleView.exe查到然後通過IHTMLWindow2接口的execScript方法執行Java
在界面上拖入QAxWidget,注意這裡不建議直接在UI設計界面指定控件,否則可能引起QtCreator崩潰
建議在代碼中動態設置,如:
ui-axWidget-setControl(“Shell.Explorer”); ui-axWidget-dynamicCall(“Navigate(QString)”, “C:/1.html”);當然,上面的”C:/1.html”是我測試的頁面
這裡的辦法是通過IHTMLWindow2接口的execScript方法執行JavaScript函數。可惜的是這個方法不支持函數返回值
#include MsHTML.h { QAxObject *document = ui-axWidget-querySubObject(“Document”); IHTMLDocument2 *doc2; document-queryInterface(QUuid(IID_IHTMLDocument2), (void**)doc2); if (doc2) { IHTMLWindow2 *win2 = nullptr; if (doc2-get_parentWindow(win2) == S_OK) { BSTR s1 = SysAllocString(L”Test()”); BSTR s2 = SysAllocString(L”JavaScript”); VARIANT ret; win2-execScript(s1, s2, ret); SysFreeString(s2); SysFreeString(s1); } } }
JavaScript函數如下
script language=”javascript” type=”text/javascript” function Test() { alert(“你調用了全局函數Test”); } /script
原創文章,作者:DJAW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/145205.html