我正在开发的应用程序,其中,用户将能够输入所希望的地址,然后preSS的一个按钮。该地址将在 web浏览器
控制在.NET Windows应用程序中。我知道,你可以使用 WebBrowser1.DocumentText
在 web浏览器
运行JavaScript和通过 WebBrowser1.Document.InvokeScript ...
我在这个小问题,我想知道,如果有人能告诉我正确的方式才能做到这一点。
code:
私人小组的button1_Click(发件人为System.Object的,E作为System.EventArgs)把手Button1.Click
昏暗AddressMap作为字符串
AddressMap = AddressM.Text
WebBrowser1.DocumentText =< HTML>< HEAD>< META NAME ='视'的内容='初始规模= 1.0,用户可扩展=没有'/>中&放大器; _
<脚本类型=文/ JavaScript的SRC =HTTP://maps.google.com.mx/maps/api/js传感器=真放;语言; ES ='>< / SCRIPT>中&放大器; _
<脚本类型=文/ JavaScript的>中&放大器; _
无功缘codeR; VAR地图; &放大器; _
函数初始化()&放大器; _
{地理codeR =新google.maps.Geo codeR(); VAR myOptions = {变焦:16,mapTypeId:google.maps.MapTypeId.ROADMAP()&放大器; _
} VAR(地址=&放大器; AddressMap&安培;)&放大器; _
全球环境展望coder.geo code({地址:地址},功能(结果状态){&放大器; _
如果(状态== google.maps.Geo coderStatus.OK){&放大器; _
map.setCenter(结果[0] .geometry.location); &放大器; _
VAR标记=新google.maps.Marker({&放大器; _
地图:地图,&放大器; _
位置:结果[0] .geometry.location}); &放大器; _
}其他{&放大器; _
}}); &放大器; _
地图=新google.maps.Map(的document.getElementById('map_canvas提供'),myOptions);}与& _
< / SCRIPT>< /头>< DIV ID ='map_canvas提供风格=宽度:100%;高度:100%>< / DIV>< / BODY>< / HTML>中
WebBrowser1.Document.InvokeScript(初始化)
结束小组
下面
时,另一块code,我认为应该工作,但我仍然得到第1行CHAR的错误在这个页面的脚本发生的脚本错误124错误预期; code 0网址about.blank
WebBrowser1.DocumentText =< HTML>< HEAD><脚本类型=文/ JavaScript的SRC =HTTP://maps.google.com.mx/图/ API / JS传感器=假放;语言; ES ='>< / SCRIPT>中+
<脚本类型=文/ JavaScript的>中+
无功缘codeR;+
VAR地图;+
函数初始化(地址){+
全球环境展望codeR =新google.maps.Geo codeR();+
VAR myOptions = {变焦:16}+
全球环境展望coder.geo code({地址:地址},功能(结果状态){map.setCenter(结果[0] .geometry.location);+
VAR标记=新google.maps.Marker({地图:地图,位置:结果[0] .geometry.location});+
地图=新google.maps.Map(的document.getElementById('map_canvas提供'),myOptions);+
}+
&所述; /脚本>中+
< /头>+
<身体GT;< DIV ID ='map_canvas提供风格=宽度:100%;高度:100%>< / DIV>< / BODY>< / HTML>中
WebBrowser1.Document.InvokeScript(初始化,新的String(){AddressM.Text})
我非常AP preciate帮助
狮子座P中。
这是另一块code稍微不同的是,previous二,它包括如果else语句从实际运行的一个HTML拉出谷歌地图的脚本。
WebBrowser1.DocumentText =< HTML>< HEAD><脚本类型=文/ JavaScript的SRC =HTTP://maps.google.com.mx/图/ API / JS传感器=假放;语言; ES ='>< / SCRIPT>中+
<脚本类型=文/ JavaScript的>中+
无功缘codeR;+
VAR地图;+
函数初始化(){+
全球环境展望codeR =新google.maps.Geo codeR();+
VAR myOptions = {变焦:16,mapTypeId:google.maps.MapTypeId.ROADMAP}+
VAR(地址='迈阿密海滩,Flordia')+
全球环境展望coder.geo code({地址:地址},+
功能(结果,状态){+
如果(状态== google.maps.Geo coderStatus.OK){map.setCenter(结果[0] .geometry.location);+
VAR标记=新google.maps.Marker({地图:地图,位置:结果[0] .geometry.location});+
}其他{警报(地理code未成功!);}});+
地图=新google.maps.Map(的document.getElementById('map_canvas提供'),myOptions);}+
&所述; /脚本>中+
< /头>+
<身体GT;< DIV ID ='map_canvas提供风格=宽度:100%;高度:100%>< / DIV>< / BODY>< / HTML>中
WebBrowser1.Document.InvokeScript(初始化)
HTML code以下
<!DOCTYPE HTML PUBLIC - // W3C // DTD HTML 4.0过渡// EN>
< HTML>
< HEAD>
< META NAME =视CONTENT =初始规模= 1.0,用户可扩展性=无/>
<脚本类型=文/ JavaScript的SRC =http://maps.google.com.mx/maps/api/js?sensor=true&language=es>< / SCRIPT>
<脚本类型=文/ JavaScript的>
VAR地理codeR;
VAR地图;
函数初始化(){
地理codeR =新google.maps.Geo codeR();
VAR myOptions = {
变焦:16,
mapTypeId:google.maps.MapTypeId.ROADMAP
}
// VAR地址=的document.getElementById(地址)的价值。
VAR地址=迈阿密海滩,Flordia//改变地址,以便搜索谷歌地图
地理coder.geo code({地址:地址},功能(结果状态){
如果(状态== google.maps.Geo coderStatus.OK){
map.setCenter(结果[0] .geometry.location);
VAR的标记=新google.maps.Marker({
地图:地图,
位置:结果[0] .geometry.location
});
} 其他 {
警报(地理code不成功,原因如下:+状态);
}
});
地图=新google.maps.Map(的document.getElementById(map_canvas提供),myOptions);
}
< / SCRIPT>
< /头>
<身体的onload =初始化()>
< DIV ID =map_canvas提供风格=宽度:100%;高度:100%>< / DIV>
< /身体GT;
< / HTML>
解决方案
把解决方案
HTML
创建HTML页面在C:\ page.html即可使用此code
<!DOCTYPE HTML PUBLIC - // W3C // DTD HTML 4.0过渡// EN>
< HTML>
< HEAD>
< META NAME =视CONTENT =初始规模= 1.0,用户可扩展性=无/>
<脚本类型=文/ JavaScript的SRC =http://maps.google.com.mx/maps/api/js?sensor=true&language=es>< / SCRIPT>
<脚本类型=文/ JavaScript的>
VAR地理codeR;
VAR地图;
函数初始化(地址){
地理codeR =新google.maps.Geo codeR();
VAR myOptions = {
变焦:16,
mapTypeId:google.maps.MapTypeId.ROADMAP
}
地理coder.geo code({'地址':(地址地址:迈阿密海滩,Flordia)},功能(结果状态){
如果(状态== google.maps.Geo coderStatus.OK){
map.setCenter(结果[0] .geometry.location);
VAR的标记=新google.maps.Marker({
地图:地图,
位置:结果[0] .geometry.location
});
} 其他 {
警报(地理code不成功,原因如下:+状态);
}
});
地图=新google.maps.Map(的document.getElementById(map_canvas提供),myOptions);
}
< / SCRIPT>
< /头>
<身体的onload =初始化()>
< DIV ID =map_canvas提供风格=宽度:100%;高度:100%>< / DIV>
< /身体GT;
< / HTML>
Windows窗体 - C#
私人无效Form1_Load的(对象发件人,EventArgs的)
{
//把URI(http://www.example.com/page.html和c:\ page.html即可有效地址)
webBrowser1.Url =新的URI(@C:\ page.html即可);
}
私人无效的button1_Click(对象发件人,EventArgs的)
{
webBrowser1.Document.InvokeScript(初始化,
新的String [] {textBox1.Text});
}
和需要的形式与此组件与此名称: textBox1的
,按钮1
和 webBrowser1
。
I'm developing an application in which the user will be able to enter a desired address and then press a button. This address will be found on the WebBrowser
control in a .net windows application. I know that you can run javascripts on WebBrowser
by using the WebBrowser1.DocumentText
, and the calling the script by WebBrowser1.Document.InvokeScript
...
I'm having little issues with this and I was wondering if someone could show me the right way in order to do it.
CODE:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim AddressMap As String
AddressMap = AddressM.Text
WebBrowser1.DocumentText = "<html><head><meta name='viewport' content='initial-scale=1.0, user-scalable=no' />" & _
"<script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=true&language;=es'></script>" & _
"<script type='text/javascript'>" & _
"var geocoder; var map;" & _
"function initialize() " & _
"{geocoder = new google.maps.Geocoder(); var myOptions = { zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP()" & _
"} var(address = " & AddressMap & ")" & _
"geocoder.geocode({ 'address': address }, function (results, status) {" & _
"if (status == google.maps.GeocoderStatus.OK) {" & _
"map.setCenter(results[0].geometry.location);" & _
"var marker = new google.maps.Marker({" & _
" map: map," & _
"position: results[0].geometry.location });" & _
"} else {" & _
"}});" & _
"map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);}" & _
"</script></head><div id='map_canvas' style='width:100%; height:100%'></div></body></html>"
WebBrowser1.Document.InvokeScript("Initialize")
End Sub
below is another piece of code that i think should work but i still get an script error "An error has occured in the script on this page" Line 1 CHar 124 Error Expected ';' Code 0 URL about.blank
WebBrowser1.DocumentText = "<html><head><script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=false&language;=es'></script> " +
"<script type='text/javascript'> " +
"var geocoder; " +
"var map; " +
"function initialize(address) { " +
"geocoder = new google.maps.Geocoder(); " +
"var myOptions = { zoom: 16 } " +
"geocoder.geocode({ 'address': address }, function (results, status) { map.setCenter(results[0].geometry.location); " +
"var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); " +
"map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); " +
"} " +
"</script> " +
"</head> " +
"<body> <div id='map_canvas' style='width:100%; height:100%'></div> </body> </html>"
WebBrowser1.Document.InvokeScript("initialize", New String() {AddressM.Text})
i greatly appreciate the help
Leo P.
this is another piece of code slightly different that the previous two, it includes and if else statement pulled out from a html that actually runs the google maps script.
WebBrowser1.DocumentText = "<html><head><script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=false&language;=es'></script> " +
"<script type='text/javascript'> " +
"var geocoder; " +
"var map; " +
"function initialize() { " +
"geocoder = new google.maps.Geocoder(); " +
"var myOptions = { zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP } " +
"var(address = 'Miami Beach, Flordia') " +
"geocoder.geocode({ 'address': address }, " +
"function (results, status) { " +
"if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); " +
"var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); " +
"} else { alert('Geocode was not successful !);}}); " +
"map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); } " +
"</script> " +
"</head> " +
"<body> <div id='map_canvas' style='width:100%; height:100%'></div> </body> </html>"
WebBrowser1.Document.InvokeScript("initialize")
html code below
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var myOptions = {
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
//var address = document.getElementById("address").value;
var address = "Miami Beach, Flordia" //change the address in order to search the google maps
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
解决方案
Putting solution
HTML
Create page html in C:\page.html and using this code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">
var geocoder;
var map;
function initialize(address) {
geocoder = new google.maps.Geocoder();
var myOptions = {
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Flordia")}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Windows Form - C#
private void Form1_Load(object sender, EventArgs e)
{
// Put uri (http://www.example.com/page.html and c:\page.html is valid address)
webBrowser1.Url = new Uri(@"C:\page.html");
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.InvokeScript("initialize",
new string[] { textBox1.Text });
}
and need form with this component with this names: textBox1
, button1
and webBrowser1
.