我正在尝试让网页在通过网址传递字符串时执行特定按钮的点击。
...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。单击该按钮将打开一个新选项卡。
然而,我的问题是,在网页上加载了网址中的信息时,点按按钮即可执行,但不会像往常一样在新标签页中打开,而是在新窗口中打开。
是否有任何理由为什么要执行.trigger('click')甚至$(“#button1”)。click()在新窗口中打开,而不是当用户单击按钮时它会打开新标签?
答案 0 :(得分:1)
您需要使用单击来阻止您在绑定到button1的函数中的按钮的默认行为(即提交到指定的URL)。)
答案 1 :(得分:0)
尝试在元素本身上调用.click()
方法(即,不是jQuery对象):
var btn = $("#button1");
if (text == 'button1' && btn.length)
{
btn[0].click();
}