WebBrowser and javascript

本文关键字:javascript and WebBrowser | 更新日期: 2023-09-27 18:27:07

我正在使用一个具有javascript的网站,该网站可以对页面加载进行一些更改。但是,当我加载页面并处理DocumentCompleted事件时,这种更改并不存在。如果我继续粘贴DocumentCompleted事件,我可以看到更改发生了。然而,我需要在DocumentCompleted期间进行此更改,以便检查一些内容。

有没有其他事件我可以订阅,或者有没有办法让webBrowser在页面上执行所有javscript?

编辑:这就是我要说的。

我加载了一个示例页面来向您展示,并在所有字段为空的情况下单击提交按钮以生成错误。

结果如下:

http://s8.postimage.org/zfv6stcar/sfsdfsdfds.jpg

现在,如果我在那个精确的时刻从WebBrowser控件中提取HTML,并将其呈现在其他地方,那么这些错误就会消失。当服务器发回这些错误时,也会发生同样的情况。如果我处理DocumentCompleted事件并获取html,它就不存在了。但在事件发生后,它出现在控件中。

希望你能理解,这很难解释。

WebBrowser and javascript

问题似乎是DocumentCompleted事件在javascript之前被激发。您应该阅读客户端/服务器端的功能。

一种选择是为DocumentCompleted事件创建一个单独的方法,并在完成后从javascript中调用它。这将使这些事件的顺序正常工作,但不是很理想。

或者,您可以在DocumentCompleted事件开始时调用javascript代码。下面的链接很好地解释了如何进行。

http://forums.asp.net/t/1117189.aspx/1

就我个人而言,我会避免使用javascript,并在客户端.NET上进行验证,但我对该网站的了解还不够。

编辑:

这应该是您正在寻找的脚本。或者,这里有一个与您的问题相关的线程。对不起,我没有确切的代码,因为我没有一个项目来测试这个。

http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerstartupscript.aspx

从CodeBehind 调用JavaScript函数

重新编辑:

您在评论中提供的链接上发生的事情是,每个文本框都在调用一些javascript以及提交按钮。最好的检查方法是在谷歌浏览器的右键菜单中使用"检查元素"。例如,在文本框上执行此操作将显示它已注册了几个事件:

onfocus="$('f_tip_Username').style.display = 'inline'"
onblur="$('f_tip_Username').style.display = 'none'"
onchange="$('f_err_Username').style.display = 'none'"

第一个ID为"f_tip_Username"的元素将该元素的显示样式设置为内联(可见)。

提交按钮调用以下内容:

onclick="return o_edit_profile_form.validate()"

在源代码中查找"o_edit_profile_form",可以找到被调用的确切javascript位置。享受

最终版本(希望如此?):

遵循以下步骤:转到您的网站,右键单击并查看源代码。查找"f_tip_Username"。这是正在使用的一个div标记的ID。它的第三个条目应该是一个"div标记",用于第一个文本框下警告"min3个字符"。

您会在上面注意到,代码中有一个输入类型"text",名称为"Username"。注意它在其中注册的三个事件:

onfocus="$('f_tip_Username').style.display = 'inline'" 
onblur="$('f_tip_Username').style.display = 'none'" 
onchange="$('f_err_Username').style.display = 'none'"

它们要么隐藏,要么使我们找到的div标记(f_tip_username)可见,还有一个单独的div标签(f_err_username),即错误消息div标签。如果你在资料来源中找不到这些,请告诉我。按照我提供的步骤,您会在"查看源代码"或DocumentText中找到它。