1

私のSilverlightアプリケーションでは、ボタンをクリックすると、クリックするたびにこのコードが呼び出されます

 private void Help_Click(object sender, RoutedEventArgs e)
  {
    HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
  }

しかし、私の問題は、クリックするたびに、つまりブラウザで新しいタブまたはウィンドウが開いていることです。

そのURLで最初に開いたページまたはタブを更新するだけで、どうすればそれを防ぐことができますか. 毎回複数のタブが開かないようにしたい。

(最終的には、例をナビゲートするために動的URLを渡したいと思います:1回目はwww.stackoverflow.com/questions 2回目は、開いている同じページをwww.stackoverflow.com/answersで更新したい)。

4

3 に答える 3

1

を使用して達成できます

HtmlPage.Window.Navigate(new Uri(" https://stackoverflow.com/ "), "xyz");

ここで、xyz はランダムな単語です。どんな言葉にも置き換えられる

于 2015-04-15T06:40:10.457 に答える
1

代わりに_blank Use _self

例えば:

これを使用しないでください

HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");

あなたはこれを使うだけ

HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");

可能な値:

  • _blank - ターゲット URL が新しいウィンドウで開きます
  • _self - ターゲット URL は、クリックされたのと同じフレームで開きます
  • _search - ターゲット URL が検索ペインで開きます
  • _top - ターゲット URL がウィンドウ全体に表示されます
  • _parent - ターゲット URL は親フレーム セットで開きます

あなたのコメントに従って、あなたがそれを作ることができる1つの代替方法があります。ご希望の方はこちらをご利用ください。

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";
}

あなたがいくつかのアイデアを得ることができることを願っています.,

于 2013-04-19T14:24:15.683 に答える
0

新しいタブを開きたくない場合は、コンストラクターから削除"_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");

物事をより明確にするために。

于 2013-04-19T14:09:14.957 に答える