0

我试图让网页在通过 url 传递字符串时单击特定按钮。

...url?key=button1

HTML:

 <button type="submit" id="button1" value="*some other url*" >Button 1</button

然后我有以下jquery:

var locate = window.location;
locate = locate.toString();
var text = locate;

$(function(){
 var temp = "?key="; 
        if (text.indexOf(temp) !== -1)
        {
        var position = text.indexOf(temp) + temp.length;
        text = text.substring (position); 
       $(window).load(function ()
            { 
                if (text == 'button1')
                {
                    $("#button1").trigger('click');
                } 
            })
        }             
   }) 

然后在我的jQuery中,我有以下代码

$("#button1").live("click", function() {

     $('#userform').attr('target', '_blank'); 
     $('#userform').delay(3000).queue(function()
           {
            $('#userform').attr('target', '').dequeue();
           });
});

那么我这样做的原因超出了我的控制范围。

出于隐私原因,我只能说页面执行提交,然后重定向到提交按钮值中的指定页面。

现在,页面的行为与您想象的一样。

用户单击按钮,表单目标设置为'_blank',表单提交一些数据并重定向到按钮值中的url。单击该按钮会打开一个新选项卡。

但是,我的问题是,在使用 url 中的信息加载页面时,单击的是按钮,而不是像通常那样在新选项卡中打开,而是在新窗口中打开。

有什么理由为什么 .trigger('click') 甚至 $("#button1").click() 在新窗口中打开而不是当用户单击按钮并在新选项卡中打开时?

4

2 回答 2

1

您需要在使用 click 绑定到 button1 的函数中防止按钮的默认行为(即提交到指定的 URL)。)

于 2012-07-16T20:46:56.333 回答
0

尝试.click()在元素本身(即,不是 jQuery 对象)上调用该方法:

var btn = $("#button1");
if (text == 'button1' && btn.length)
{
    btn[0].click();
} 
于 2012-07-16T20:52:19.813 回答