如何在列表中存储和访问 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,该 URL 就会插入到上一个队列中。如果用户点击"后退"按钮,则该 URL 将从上一个队列中获取并插入到将来的队列中。
这样,您可以避免使用枚举器,并始终知道用户的位置。