-2

次のようにhrefを持っています:

<a class="eLink" href="http:www.abc.com">chk here xyz</a></li>

「eLink」のJavaScriptは次のとおりです。

    $("a.eLink").click(function link(evt) {
        url = evt.target.href;

        if (url.toString().toLowerCase().indexOf(".gov") <= 0) {

            var tk = "Do you really want to continue?";

            if (confirm(tk)) {
                window.open(url, 'newwin');
            }else{
               window.open(url,'_self'); 
            }
        }
        else
        { window.open(url, 'newwin'); }

        return false;
    });
});

今私の問題は、hrefをクリックして、確認ボタンの「キャンセル」をクリックすると、ページが「abc.com」に移動しますが、発生しないはずです。私のブラウザは同じままである必要があります。同じページを維持するために、else部分でどのスクリプトを使用する必要がありますか。ありがとう。

4

3 に答える 3

2

他のものを取り出すだけです。

if (confirm(tk)) {
    window.open(url, 'newwin');
  }

補足として、IE8 以下はこのindexOf機能を実装していないため、独自の実装を作成してパッチを適用することをお勧めします。

于 2012-04-19T17:54:02.617 に答える
1

デフォルトのアクションは、return false;(jQuery スタイル)によって既に防止されているはずです。

問題は、キャンセルをクリックするwindow.open(url,'_self');と実行され、確認条件のelse部分を削除するだけです

このフィドルをチェックしてください

于 2012-04-19T17:54:25.253 に答える
0

あなたが持っている:

var tk = "Do you really want to continue?";

            if (confirm(tk)) {
                window.open(url, 'newwin');
            }else{
               window.open(url,'_self'); 
            }

これは、キャンセルをクリックするFalseと が返され、それでもリンクが開くことを意味します。ステートメントで削除する必要がありwindow.openますelse

if (confirm(tk)) {
                    window.open(url, 'newwin');
                }
于 2012-04-19T17:50:35.370 に答える