在我的Silverlight应用程序中,我点击一下按钮,每次单击它都会调用此代码
private void Help_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
}
但我的问题是每次点击它都在浏览器中打开一个新的选项卡或窗口。
我怎么能通过刷新第一个打开的页面或带有该URL的选项卡来防止这种情况。我想每次都防止打开多个标签。
(最终我想传递一个动态网址来导航ex:第一次www.stackoverflow.com/questions第二次我想用www.stackoverflow.com/answers刷新同一个打开的页面)。
非法的_blank Use _self
例如:
不要使用它
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
你只需使用它
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
可能的值:
根据你的评论,你可以做出另一种方式。如果您希望可以使用它。
private void Help_Click(object sender, RoutedEventArgs e)
{
// Checking the Condition
if (Session["hasvalue"].ToString() == "Clicked") // Second click onwards current TAB itself
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
}
else // First Time it will be opened in New TAB
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
}
// Assign this value to session
Session["hasvalue"] = "Clicked";
}
希望你能有所了解。,
如果您不希望它打开新选项卡,请从"_blank"
构造函数中删除Uri
。所以改变
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
至
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"));
有关详细信息,请参阅W3Schools目标解释。
"_self"
是默认值,但您可以使用
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
使事情更明确。