如何在列表中存储和访问 url 以实现后退和前进 Web 浏览器功能

本文关键字:功能 浏览器 Web 实现 url 列表 存储 访问 | 更新日期: 2023-09-27 18:36:19

我正在制作一个Web浏览器,但我不能使用.NET提供的Web浏览器类。我已经设法制作了所有基本功能。但是我现在正在研究后退和前进按钮。我有一个存储网址的列表(在地址栏中输入的网址)。我想循环浏览这些内容,以根据按下的按钮使用户前进或后退。

我的代码:

public partial class WebBrowser : Form
{
    public string url;
    public string addressText;
    private homeForm homeForm;
    private List <string> urlList = new List <string> ();
    public WebBrowser()
    {
        InitializeComponent();
    }
    private void navigateButton_Click(object sender, EventArgs e)
    {
        addressText = urlBar.Text;
        webNavigate(addressText);
    }
    private void backButton_Click(object sender, EventArgs e)
    {
    }
    private void forwardButton_Click(object sender, EventArgs e)
    {
    }
    private void webNavigate(string urlbartext )
    {
        addressText = urlBar.Text;
        urlbartext = "http://" + addressText;
        urlList.Add(urlbartext);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlbartext);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream pageStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(pageStream, Encoding.Default);
        string s = reader.ReadToEnd();
        webDisplay.Text = s;
        reader.Dispose();
        pageStream.Dispose();
        response.Close();
    }

问题。如何使用我的列表查看访问的网站?

如何在列表中存储和访问 url 以实现后退和前进 Web 浏览器功能

尝试使用队列,而不是列表。一个用于以前访问过的网址,一个用于将来的网址。

因此,在浏览器的初始加载时,两个队列都是空的。一旦用户导航到某个 URL,该 URL 就会插入到上一个队列中。如果用户点击"后退"按钮,则该 URL 将从上一个队列中获取并插入到将来的队列中。

这样,您可以避免使用枚举器,并始终知道用户的位置。