0

私のViewModelでは、動的URLを準備してから、次のように呼び出しています。

HtmlPage.Window.Navigate(new Uri(URL), "_blank");

しかしうまくいかなかったので、Silverlightからjavascriptを呼び出そうとし、javascript内でwindow.open()メソッドを呼び出しました。コードは次のようになります。

HtmlPage.Window.Invoke("open_win", URL);

Javascript 関数 open_win は次のようになります。

function open_win(param1) {
        var win = window.open(param1, 'ad', 'width=400,height=200,scrollbars=yes')
        win.focus();
    }

ただし、IE でのみ機能し、他のすべてのブラウザーではポップアップ ブロッカーが表示されます。

ポップアップブロッカーを取り除くためにもう1つの解決策を試しましたダミーのhtmlボタンを作成し、open_win関数内でクリックをトリガーしましたが、動作しませんでしたが、htmlボタンをクリックすると正常に動作します. シルバーライトボタンで同じことをするのを手伝ってください。

ポップアップ ブロッカーなしで新しいブラウザー ウィンドウを開く他の解決策がある場合は、それも提案してください。

前もって感謝します。

4

1 に答える 1

0

Javascript で Click イベントをリッスンします。

クリックを受信するために Silverlight を使用する場合、ブラウザーはクリックが発生したことを認識しません。コードが新しいブラウザーを開こうとしていると想定しているだけです。これが、新しいウィンドウがポップアップとして分類されている理由です。

Javascript を使用して、DOM クリック イベントをリッスンします。そうすれば、ブラウザは新しいウィンドウを尊重します。

于 2013-03-20T07:25:38.590 に答える