【问题标题】:Why does this ONLY search Google? [closed]为什么这只搜索谷歌? [关闭]
【发布时间】:2014-12-04 19:07:19
【问题描述】:

它会跳过对有效 URL 的导航并直接进入 Google 搜索。如果我在文本框中输入“stackoverflow.com”,它将谷歌搜索“stackoverflow.com”。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Navigate(textBox1.Text); //navigates to url in textbox

    if (!textBox1.Text.StartsWith("http://"))
    {
        webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text));
    }
}

【问题讨论】:

  • 可能应该是 and if/else 而不是 Navigate then Navigate if...
  • 显然 "stackoverflow.com" 不是以 "http://" 开头的,那你为什么会期望它有所不同呢?
  • 可能是因为导航到“stackoverflow.com”(没有协议前缀)会默认在您的浏览器中进行搜索。
  • @BradleyDotNET 我假设 OP 期望浏览器导航到“stackoverflow.com”,就好像它已直接输入到位置框中一样
  • 所以如果stackoverflow.com 不以http:// 开头,请进行谷歌搜索。好像它会做一个谷歌搜索。

标签: c# webbrowser-control


【解决方案1】:

英文代码基本上是说“导航到输入到文本框中的任何内容。然后,如果您输入到文本框中的任何内容都不是以 'http://' 开头的,让我们立即执行谷歌搜索它。”

基本上您正在导航到 stackoverflow.com,但您随后立即在 Google 上搜索它。如果您希望它以不同的方式运行,则需要对其进行不同的编码。

这是我将如何重做它:

private void button1_Click(object sender, EventArgs e)
{
    if (!textBox1.Text.StartsWith("http://"))
    {
        // didn't start with "http://" so search for it
        webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text));
    }
    else
    {
        // navigate directly to the URL
        webBrowser1.Navigate(textBox1.Text);
    }
}

if-else 语句中,只会根据条件选择一个逻辑路径。永远不会同时运行。

【讨论】:

    【解决方案2】:

    它搜索 Google 是因为您的逻辑是“如果文本框内容不以 http:// 开头,让我们进行 Google 搜索”。您正在实际加载 stackoverflow.com,但您立即更改页面并改为加载 Google。

    您可能希望将下面的代码修改为“过滤”并通过不首先加载 stackoverflow.com 来节省一些内存:

    private void button1_Click(object sender, EventArgs e)
    {
        if (!textBox1.Text.StartsWith("http://") | !textBox1.Text.StartsWith("www") || !textBox1.Text.StartsWith("http://www"))
        {
            webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text));
        }
        else
        {
            webBrowser1.Navigate(textBox1.Text); //navigates to url in textbox
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多