0

jQueryでページを(強制的にクリックして)開くとすぐにリンクを開こうとしていますが、機能しません。

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
    $('a.bla').click(function(){
    window.open(this.href);
    return false;
    });
});
</script>   
</head>
<body>
<a href="url-to-open.php" target="_blank" class='bla'><img src="pic.png" alt="" style="border:none;" /></a>
</body>
</html>

何が悪いのかわかりません。あなたの誰かがこれを修正する方法を知っていることを願っています。

4

5 に答える 5

2

ページをロードするとすぐにコードがリンクを開くことはありません。ページをロードするとすぐに関数をトリガーするイベントハンドラーを作成します。そのイベントハンドラーは、リンクをクリックしたときにのみトリガーされます。

さて、あなたが通常することは次のとおりです。

$(document).ready(function(){
    $('a.bla').trigger('click');
});

リンクが開かない場合を除いて、セキュリティ上の理由から、プログラムでマウスクリックをトリガーすることはできません。プログラムでトリガーできるのは、そのマウスクリックに割り当てられたイベントハンドラーのみです。

これを試して:

$(document).ready(function(){
    window.open($('a.bla').attr('href'),'name-of-new-window');
});

もちろん、ユーザーがポップアップブロッカーで停止しない限り、これは機能します。

于 2012-10-18T16:54:18.977 に答える
1
$('a.bla').click(function(){


should be 

    <script>
$(document).ready(function(){
    $('a.bla').click(function(){
    window.open($(this).attr("href"));
    return false;
    });
});
于 2012-10-18T16:48:37.287 に答える
1

.クラスには使用しない#

$(document).ready(function(){
    $('a.bla').click(function(){
    window.open(this.href);
    return false;
    });
});

示されているように、使用#は誤っています。

$(document).ready(function(){

    window.open($('a .bla').href);
    return false;

});
于 2012-10-18T16:48:44.543 に答える
1

試す

window.open($(this).attr('href'));

それ以外の

window.open(this.href);

ページの読み込み時に開きたい場合..この行をクリックイベントの外に移動するだけで問題ありません。

于 2012-10-18T16:49:01.627 に答える
0

この例では、リンククリックイベントを介して新しいウィンドウが自動的に開きます。(これはテストされていません。引数hrefとして値をハンドラーに渡す必要がある場合があります。data

$(document).ready( function() {

    var $link = $( 'a.bla' ),
        href= $link.attr( 'href' );

    $link.unbind( 'click' ).bind( 'click', function ( e ) {
        window.open( href );
        e.preventDefault();
        e.stopPropagation();
    } );

    $link.click();
});
于 2012-10-18T16:52:45.373 に答える