当前位置:编程学习 > C#/ASP.NET >>

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

在有些网页中,单击鼠标右键,弹出的是JAVASCRIPT响应的 div 弹出层。
请问如何用 C# WebBrowser 来模拟右键来弹出这个 DIV 的层?
100分相赠,谢谢大家! --------------------编程问答-------------------- 用IE10的js调试工具跟踪下,直接调用菜单执行后对应的js函数就可以了,没必要模拟菜单的弹出。 --------------------编程问答-------------------- webbrowser 不能模拟右键吗? --------------------编程问答-------------------- 你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码, --------------------编程问答--------------------
引用 3 楼 lizhi3186575 的回复:
你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码,

由于别人网页的javascript 代码太复杂,又是加密混淆后的,直接调用JS函数名谈何容易啊 --------------------编程问答--------------------
引用 4 楼 macenjie 的回复:
Quote: 引用 3 楼 lizhi3186575 的回复:

你可以在WebBrowser通过WebBrowser.Document.InvokeScript("JS函数名")的方式来调用网页中的JS代码,

由于别人网页的javascript 代码太复杂,又是加密混淆后的,直接调用JS函数名谈何容易啊


所以让你先用IE DevTools调试下,获取函数名。 --------------------编程问答-------------------- 确实,你应该学会用调试工具去找到合适的处理方式。
代码不需要都看懂,只要找到相关的处理部分就可以了。最好用chrome调试,可以利用它的dom事件断点方式。比如鼠标右键点击可以侦听下面两个事件:

设好断点后,在页面上点右键,调试器就会停在相关的处理语句上。

经过混淆的js可以用格式化功能把它重新排版整齐,因为通常我们只是需要找到入口函数,所以混淆后看不懂的部分影响不大,对外可供调用的名字一般都是很直观的,所以也很好找。

如果实在找不到,可以用p/invoke方式模拟点击鼠标,用SendMessage或mouse_event
--------------------编程问答--------------------    WebBrowser提供了四种响应JS方式。重载IDocHostUIHandler接口,window.external方法,可实现替换JS本来的方法用自己的方法。从DOM树外层文档到内层寻找获取节点也可实现自己对于JS方法的实现。另外两种就是通过自己的程序调用层层剥离jS函数方式实现。原理都差不多,主要是需要对IDispatch接口进行重载。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,