Проблемы с использованием веб-браузера с ie7 и якорями - PullRequest
1 голос
/ 12 июля 2010

Я вижу очень странное поведение при использовании элемента управления веб-браузера c # и ссылки с якорями в нем. Ох, и это поведение, кажется, происходит только в ie7 в ie8, это нормально!

Я создал простую форму с элементом управления веб-браузера.

Я добавил новый WebBrowserNavigatedEventHandler для загрузки некоторого html после того, как браузер загрузил первую страницу. Прямая ссылка на Google работает нормально, но ссылка на страницу википедии и точку привязки ничего не делает.

Если, однако, я перехожу на страницу с якорями в ней (или ссылки на другую страницу со ссылками, она работает нормально)!

Так что проблемы могут быть связаны со страницей, которую я загружаю в первый раз / как я ее загружаю.

Вот код, который я написал, любые предложения будут оценены.

Edit:

Я только что заметил, что если я изменю строку

this.webBrowser1.Document.Write(html);

до:

this.webBrowser1.DocumentText = html;

отлично работает !!!

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_NavigatedLoaddefaultpage);
        this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_NavigatedUpdateTextbox);

        this.webBrowser1.Navigate("about:blank");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.webBrowser1.Navigate(this.textBox1.Text);
    }


    void webBrowser1_NavigatedLoaddefaultpage(object sender, WebBrowserNavigatedEventArgs e)
    {
        this.webBrowser1.Navigated -= new WebBrowserNavigatedEventHandler(webBrowser1_NavigatedLoaddefaultpage);

        string html = "<html>";
        html += "<body>";

        html += "<h1>My First Heading</h1>";

        html += "<p>My first paragraph.</p>";

        html += "<a href='http://en.wikipedia.org/wiki/Star_Trek#Production_history'>Star Trek Production history</a>";
        html += "Go to <a href='http://www.google.com'>Google Search</a><br />";
        html += "</body>";
        html += "</html>";
        this.webBrowser1.Document.Write(html);
    }

    void webBrowser1_NavigatedUpdateTextbox(object sender, WebBrowserNavigatedEventArgs e)
    {
        this.textBox1.Text = this.webBrowser1.Url.ToString();
    }
}

Ответы [ 2 ]

0 голосов
/ 25 января 2012

Кажется, я только что столкнулся с этой проблемой.Элемент управления веб-браузера отказывается загружаться, когда у меня есть URL, который включает в себя привязку (например, http://cnn.com/#foo). Я бы поклялся, что это работает, но я думаю, что Microsoft, должно быть, повторно ввела эту ошибку, предполагая, что она ранее исправила ееили, возможно, моя тестовая система просто не получила обновлений, включающих эту ошибку).

0 голосов
/ 09 февраля 2011

Это может даже не быть проблемой с вашим кодом.Это может быть якорная ошибка, которую имеет IE7.У меня были проблемы с якорями, не работающими в IE7.Очевидно, иногда это происходит, а иногда нет.

...