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);

如果您想在页面加载时打开.. 只需将此行移到 click 事件之外就可以了。

于 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 回答