A. VB通過WebBrowser1 ,調取js變數"name"等值並顯示在網頁文本框中, 現在的問題是:VB如何將這些值讀出來,
比如網頁中有:
<input id=txt1 name=text1 type=text value="abc123">
那麼VB中可以用以下方式來獲得這個文本框的版值:
WebBrowser1.document.getElementById("txt1").Value
或者:
WebBrowser1.document.getElementsByName("text1")(0).Value
或者:
WebBrowser1.document.getElementsByTagName("input")(0).Value '假定這個input是整個網頁的第一權個input
B. vb6使用Webbrowser1,點擊網頁裡面的按鈕,觸發網頁的js時,觸發vb中定義的事件
看了抄你的提問我也有襲了疑問:
1.htm有幾個?
Set mICustomDoc = Me.WebBrowser1.Document
mICustomDoc.SetUIHandler Me
這個代碼裡面,SetUIHandler方法來自何方?可能是你自己寫了個加強型類模塊?
看到「(這個頁面結構我是無許可權改動的,我只有許可權改動vb中的代碼)」這句我就望而卻步了,我的辦法是廢棄掉HTM文件里的所有執行代碼,HTM文件只負責布局,執行代碼都集中到VB程序里。
還有個辦法是找到mICustomDoc.SetUIHandler Me的逆操作,文本框(如果能)取得焦點,就採取該逆操作,使得文本框能夠輸入。文本框取得焦點的時候最好添加個遮布來屏蔽頁面其他元素,如果這樣,文本框也就不如沒有好。
C. c#的webbrowser調用本地javascript腳本
你好!
你的意思是調用你自己寫的JS文件,而不是鏈接過去頁面裡面的腳本對吧!
其實你可以換個思路的。
webBrowser1.Navigate(http://gd.10086.cn/);
webBrowser1鏈接這個網頁後,它的DocumentText 裡面就有內容了。這個時候你可以把你的腳本動態寫到網頁上去的。示例:
webBrowser1.DocumentText + = " <script type='text/javascript'>function Alert_{ alert('hello world');} </script>";
然後再使用方法webBrowser1.Document.InvokeScript("Alert_");調用即可
如果是http://gd.10086.cn/本身存在的腳本,直接用上面的方法就行了。
D. 當用webBrowser1載入網頁的時候,網頁中出現js錯誤,會彈出一個提示,如何屏蔽不提示
WebBrowser控制項禁用超鏈接轉向、腳本錯誤提示、默認右鍵菜單和快捷鍵
從 VS2005開始,VS自帶的 WebBrowser控制項,就已經相當友好了,可控性非常高了。Winform 結合 WebBrowser 做UI開發,也是一種非常流暢的模式了, 微軟的VS IDE 系列的安裝程序, 基本都是這個模式的
禁用錯誤腳本提示
將 WebBrowser控制項的 ScriptErrorsSuppressed 設為 true
禁用右鍵菜單
將 WebBrowser 的 設為 false
禁用快捷鍵
將 WebBrowser 的 WebBrowserShortcutsEnabled 設為 false
禁用超鏈接
超鏈接分為兩種,一種是 當前窗口直接轉向, 一種是 在新窗口中打開
當然窗口直接轉向:
將 WebBrowser 的 AllowNavigation 設為 false
在新窗口中打開:
禁用新窗口打開,需要處理 WebBrowser 的 NewWindow 事件
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
做完上面的工作,基本就完工了,還有最後一點需要注意,那就是 Drag-And-Drop
記得將 WebBrowser 的 AllowWebBrowserDrop 設為 false
E. C#winform WebBrowser怎麼獲取js中的變數的值怎麼觸發js的事件
讓函數去返回變數的值或觸發事件,在C#里調用這個JS函數
stringstr=webBrowser1.Document.InvokeScript("js函數名","參數");
F. C# winform WebBrowser怎麼獲取js中的變數的值怎麼觸發js的事件
參考如下代碼:
//項目中添加Micrsoft.mshtml引用
//Begin temp.htm-------
<html>
<head>
<title>demo</title>
<script language="JavaScript" type="text/javascript">
var testText = "Zswang";
function ShowMessage(AText)
{
alert(testText);
alert(AText);
}
</script>
</head>
</html>
//End temp.htm-------
using mshtml;
using System.Reflection;
private void button1_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
Type vWindowType = vWindow.GetType();
object testText = vWindowType.InvokeMember("testText",
BindingFlags.GetProperty, null, vWindow, new object[] { }); // 讀取
Console.WriteLine(testText);
vWindowType.InvokeMember("testText",
BindingFlags.SetProperty, null, vWindow, new object[] { "Zswang 路過" }); // 設置
vWindowType.InvokeMember("ShowMessage",
BindingFlags.InvokeMethod, null, vWindow, new object[] { 12345 }); // 執行方法
}
private void button2_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
vWindow.execScript("ShowMessage(67890);", "JavaScript"); // 執行腳本
}
G. VB.NET 用 WebBrowser,怎麼執行JS的這個事件
VB.NET 2013有parentWindow的,
WebBrowser1.Document.DomDocument.parentWindow.execScript才有