【问题标题】:get URL from web page button click从网页按钮单击获取 URL
【发布时间】:2014-08-08 00:02:32
【问题描述】:

我有一个 C# 网页查看器正在工作。我需要做的是,当在该网页中单击一个按钮时,它会更改以某个字符串开头的 URL,例如“xyz”。我需要知道如何检测到这种变化。 在 android 中,我只使用了 shouldOverrideURlLoading 并有一个 if 语句,但我可以检索的唯一 URL 是我传递的用于启动 Web 视图的原始 URL。 有没有办法在每个新屏幕之后调用 DocumnetedCompleted.. 有 appox. 2 次按下按钮,让我使用重要按钮进入屏幕

【问题讨论】:

    标签: c# web


    【解决方案1】:

    如果您使用的是 WebBrowser 控件,则可以使用 Navigating 事件来处理站点导航到另一个 url 时。

    您可以从那里使用 WebBrowserNavigatingEventArgs 检索新 URL,并在需要时停止它或更改目标 URL。

        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            if (e.Url.AbsoluteUri.Contains("something")) {
                //stais in the current page
                e.Cancel = true;
    
                //aditionally you can navigate to another URL (though it will fire this event again)
                webBrowser1.Navigate(e.Url.AbsoluteUri.Replace("something", "empty"));
    
            } else {
                //continue
            }
        }
    

    【讨论】:

    • 我试过了..没什么..也许我说错了..在网页内 JavaScript 正在等待按钮被按下,一旦它通过 json 和 android 发送数据无论如何我通过寻找特定的 URL 来处理这个问题..我似乎不能在这里这样做..windows 7 c# winform
    • 对不起,该代码对 ajax 调用没有帮助...我认为现在唯一的方法是尝试将处理程序附加到某个对象并在它更改时进行监听,也许这会给你一个想法:stackoverflow.com/questions/635948/…
    • 只是一个更新..在 C# winform 中只有一个 webView。没有按钮或任何东西。在网页本身内,有按钮。我需要能够知道何时按下其中一个按钮并执行某些操作。在android中,shouldOverrideUrlLoading 只处理这个..有人知道C#的等价物吗????
    【解决方案2】:

    我认为你需要这样的东西

    private void change_Url () {
      var URL = Request.Url.ToString(); // get the URL
      // if you meant to appened the text, then
      URL = URL + "abc";
    }
    

    【讨论】:

    • 将此添加到页面顶部:System.Web.HttpRequest。然后使用此代码
    • 它仍然只是传回我一开始给它的原始网址
    • 您还需要将其附加到 URL。不只是在变量中!
    • 我试着按照这个例子link 但我得到一个空引用异常
    • @user3322270 nullreference 异常意味着您作为参数传递的值为 null。
    猜你喜欢
    • 1970-01-01
    • 2012-12-10
    • 2016-11-16
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多