-1

現在、JavaScript を使用して新しいポップアップ ウィンドウを開こうとしていますが、リンクを数回クリックするとポップアップ ウィンドウが 1 つだけ開くようにしたいのですが、ウィンドウを閉じると再度ポップアップするようにします。

これまでのところ、次のことを行っています。

.js

function open() {
    var popup = window.open("http://www.google.com/", "URL","left=0,top=0,width=800,height=600,status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no");
}

.html

<a onclick="javascript:open()">Click me</a>

Chrome と FF を使用すると問題なく動作しますが、IE でテストすると、クリックするたびに新しいウィンドウが開きます。

これを直す方法があれば教えていただきたいです。

4

4 に答える 4

0

HTML ページでポップアップ ウィンドウのインスタンスを 1 つだけ開くには、window.open メソッドの「windowName」パラメーターを使用します。例: window.open(" http://www.mywebsite.com ") は、ユーザーが window.open コードを含むリンクをクリックするたびに新しいウィンドウを開きます。同じウィンドウで開くには、window.open(" http://www.mywebsite.com ","contacts") を使用します。これにより、リンクを "N" 回クリックすると、ウィンドウのインスタンスが 1 つだけ開きます。

于 2016-08-30T01:43:15.573 に答える
0
function open() {
    document.getElementById('link').onclick = '';
    // open popup
}

<a id="link" onclick="javascript:open()">Click me</a>

これは完全な解決策ではなく、ポップアップ ウィンドウがブロックされている状況を考慮していないことに注意してください。

于 2013-03-13T15:59:52.167 に答える
0

変数を使用して、以前に開かれたかどうかを確認します。

var opened = false;
function open() {
    if (!opened) {
        var popup = window.open("http://www.google.com/", "URL","left=0,top=0,width=800,height=600,status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no");
        popup.onload = function() {
            popup.onunload = function() {
                opened = false;
            };
        };
        opened = true;
    }
}

ネストされたコールバックの説明については、これを読むことができます。

window.open(...).onunload = function () { ... } が期待どおりに動作しないのはなぜですか?

于 2013-03-13T15:59:53.927 に答える
0

@トマト

このコードを試してください、

function Redirect (url, name, args)
 {
   if (typeof (popupWind) != "object" || popupWind.closed) 
   {
       popupWind= window.open(url, name, args); 
   }

   popupWind.focus(); 
   return popupWind;
 }
于 2013-07-31T13:23:46.023 に答える