[高分求解] WebBrowser 如何模拟响应 javascript 的右键菜单?

macenjie 2013-08-07 12:29:36
在有些网页中,单击鼠标右键,弹出的是JAVASCRIPT响应的 div 弹出层。
请问如何用 C# WebBrowser 来模拟右键来弹出这个 DIV 的层?
100分相赠,谢谢大家!
...全文
157 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-08-07
  • 打赏
  • 举报
回复
用IE10的js调试工具跟踪下,直接调用菜单执行后对应的js函数就可以了,没必要模拟菜单的弹出。
threenewbee 2013-08-07
  • 打赏
  • 举报
回复
引用 4 楼 macenjie 的回复:
[quote=引用 3 楼 lizhi3186575 的回复:] 你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码,
由于别人网页的javascript 代码太复杂,又是加密混淆后的,直接调用JS函数名谈何容易啊[/quote] 所以让你先用IE DevTools调试下,获取函数名。
macenjie 2013-08-07
  • 打赏
  • 举报
回复
引用 3 楼 lizhi3186575 的回复:
你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码,
由于别人网页的javascript 代码太复杂,又是加密混淆后的,直接调用JS函数名谈何容易啊
人生导师 2013-08-07
  • 打赏
  • 举报
回复
你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码,
macenjie 2013-08-07
  • 打赏
  • 举报
回复
webbrowser 不能模拟右键吗?
江湖评谈 2013-08-07
  • 打赏
  • 举报
回复
WebBrowser提供了四种响应JS方式。重载IDocHostUIHandler接口,window.external方法,可实现替换JS本来的方法用自己的方法。从DOM树外层文档到内层寻找获取节点也可实现自己对于JS方法的实现。另外两种就是通过自己的程序调用层层剥离jS函数方式实现。原理都差不多,主要是需要对IDispatch接口进行重载。
jshi123 2013-08-07
  • 打赏
  • 举报
回复
确实,你应该学会用调试工具去找到合适的处理方式。 代码不需要都看懂,只要找到相关的处理部分就可以了。最好用chrome调试,可以利用它的dom事件断点方式。比如鼠标右键点击可以侦听下面两个事件: 设好断点后,在页面上点右键,调试器就会停在相关的处理语句上。 经过混淆的js可以用格式化功能把它重新排版整齐,因为通常我们只是需要找到入口函数,所以混淆后看不懂的部分影响不大,对外可供调用的名字一般都是很直观的,所以也很好找。 如果实在找不到,可以用p/invoke方式模拟点击鼠标,用SendMessage或mouse_event

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧