如何在列表中存储和访问URL以用于后退和转发Web浏览器功能

时间:2013-10-20 15:06:38

标签: c# asp.net list browser

我正在制作网络浏览器,但我不允许使用.NET提供的网络浏览器类。我已设法完成所有基本功能。但是我现在正在处理后退和前进按钮。我有一个存储网址的列表(在地址栏中输入的网址)。我想循环使用这些来向前或向后取决于按下的按钮。

我的代码:

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();
    }

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

1 个答案:

答案 0 :(得分:0)

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

因此,在初次加载浏览器时,两个队列都是空的。 一旦用户导航到URL,该URL就会插入到前一个队列中。如果用户点击“返回”按钮,则该URL将从前一个队列中获取并插入到将来的队列中。

通过这种方式,您可以避免使用枚举器并随时了解您的用户所在的位置。