Csharp/C#教程:如何区分用户单击链接和执行自动重定向的页面?分享


如何区分用户单击链接和执行自动重定向的页面?

在我的WinForms应用程序中有一个C# WebBrowser控件 ,并且知道Navigating事件 ,我从来没有想出一个漂亮而优雅的解决方案:

  1. 如果用户主动导航到另一个URL,我想允许它。
  2. 如果页面“自己”重定向到另一个URL,我想取消它。

对于案例1 ,我可以想到一些案例:

对于案例2,我可以想象:

所以我的问题是:

如何在Navigating事件(或任何其他机制)内部检测重定向是由用户显式触发还是由页面隐式触发?

更多信息

(请注意,我确实认为这不是此SOpost的重复)

我对此的看法是捕获用户对Web浏览器控件的点击。 让它设置一个标志,指示用户点击了Web浏览器。 如果该标志为真,则允许重定向,如果不是,则不允许它。 如果没有(或之后)重定向,请确保在n秒后重置标志。

您似乎正在尝试实现反广告/弹出/重定向模式。

从网络浏览器的角度来看..点击 window.location = "https://stackoverflow.com/questions/14050548/how-to-distinguish-between-a-user-clicking-a-link-and-the-page-doing-an-automati/some.url";与javascript window.location = "https://stackoverflow.com/questions/14050548/how-to-distinguish-between-a-user-clicking-a-link-and-the-page-doing-an-automati/some.url";没有什么不同window.location = "https://stackoverflow.com/questions/14050548/how-to-distinguish-between-a-user-clicking-a-link-and-the-page-doing-an-automati/some.url";302重定向响应。 没有明确的信号,没有这样的便利方法。

WebBrowser控件只是IE组件的代理。 你不能拦截浏览器的引擎,甚至禁用/启用javascript,因为它是互联网安全选项的一部分。

您必须创建特殊逻辑以防止每种可能的重定向情况。

例如。 validationHTML字符串然后在渲染之前使用Regex.Replace限制某些javascript模式,标题或iframe。

 var scriptEx = new Regex(" 

或拦截导航URL并取消不安全的URL等。

上述就是C#学习教程:如何区分用户单击链接和执行自动重定向的页面?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1019423.html

(0)
上一篇 2022年1月4日
下一篇 2022年1月4日

精彩推荐