3

JavaScriptを使用したモーダルダイアログとして、ボタンがクリックされたときにウィンドウを開く必要があります。を使用window.openしましたが、親ページとポップアップ ページの 2 つのインスタンスが表示されます。ポップアップ ページが開いているときは、ユーザーが親ページをクリックできないようにします。

function openWindow() {
  var w = 950;
  var h = 350;
  var t = 0;
  var l = 0;
  var scrollbars = 1;
  var modal = 'yes';

  var reportWindow = window.open("Search.aspx" + '', '', "width=" + w + ",height=" + h + ",left=" + l + ",top=" + t + ',scrollbars=' + scrollbars + 'modal' + modal);
  reportWindow.focus();
}
4

2 に答える 2

8

あなたのコード行、

reportWindow = window.open("Search.aspx" + '', '', "width=" + w + ",height=" + h + ",left=" + l + ",top=" + t + ',scrollbars=' + scrollbars + 'modal' + modal);

モーダルの後に「=」記号がありません。そのはず、

reportWindow = window.open("Search.aspx" + '', '', "width=" + w + ",height=" + h + ",left=" + l + ",top=" + t + ',scrollbars=' + scrollbars + 'modal=' + modal);

ダイアログボックスとしてウィンドウを開くには、

 <html>
    <body>
    <script language="JavaScript">
    function openWindow() {
       if (window.showModalDialog) {
window.showModalDialog("http://example.com","name",
"dialogWidth:255px;dialogHeight:250px");
} else {
window.open('http://example.com','name',
'height=255,width=250,toolbar=no,directories=no,status=no, linemenubar=no,scrollbars=no,resizable=no ,modal=yes');
}
    } 
    </script>
    <button onclick="openWindow();">Open window</button>
    </body>
    </html>

上記のコードが機能しない場合は、jQueryモーダルダイアログを使用してください。iframeを使用してダイアログに任意のURLを読み込むことができます。

于 2012-07-20T07:20:41.987 に答える
2

「window.open」は機能しません。このコマンドは常に、親の上に「常に」あるわけではないポップアップを開きます。

2 オプション:

  1. ユーザーに検索文字列を入力させたい場合は、使用できます

    prompt("Please enter a search string:", "");
    
  2. 複雑な検索フォームがある場合は、独自のモーダル ダイアログを作成する必要があります。この機能を提供するフレームワークがあります (「jQuery」は google)、または独自に作成します。難しいことではありません。助けが必要な場合は教えてください。

于 2012-07-20T07:33:24.567 に答える