有没有人知道如何在IE中处理和取消javascript请求? 基本上,我对C#WebBrowser控件的这种功能很感兴趣。 这里的目标是处理对互联网的javascript / ajax请求,如果请求的URL匹配某些过滤器,则取消它。如果广告拦截,可以将其视为某种形式。 但任何解决方案都没问题,因为我认为我可以在我的项目中以某种方式使用它。 或许您知道如何使用其他浏览器/包装器执行此操作? 我将不胜感激任何帮助。
答案 0 :(得分:1)
如果您指的是ajax呼叫,那么这取决于您如何拨打电话。例如,如果您使用jquery进行调用,那么有一个如何取消它的示例:
Abort Ajax requests using jQuery
如果直接使用和XmlHttpRequest对象进行调用,请在此处查看中止方法:
http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx
所以基本上你调用相关的kill / abort方法,然后永远不应该调用你附加到ajax调用的处理程序或错误回调。
如果你想在WebBrowser控件中阻止ajax调用似乎有办法,但它有点乱。请参阅本讨论的后面部分:
http://social.msdn.microsoft.com/Forums/en/winforms/thread/c7c9a6f9-9875-4d8b-8c87-81f2c423fa6a
基本上你可以修改相关的HtmlDocument,以便首先取出ajax调用。但是,似乎确实无法为给定的IE会话禁用javascript(因此不仅仅是WebBrowser控件中的那个),这是一个全局设置。
答案 1 :(得分:0)
不确定“JavaScript请求”所指的是什么,但是......如果您在.Net 3.5+ Framework中使用Web浏览器控件,则可以拦截发送给控件的HTML并将JavaScript删掉,但那是相当笨拙的。
如果您能够直接编辑JavaScript,则可以覆盖该功能。所以如果函数写成:
var alertUser = function(){alert('Hello, silly user.');}
你可以编写alertUser = function(){};
这基本上是将它设置为空函数,因此在调用时它不会出错;但是什么都不做。
如果您希望功能“取消”,则只需添加return;