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才有