a.click()在火狐与谷歌中的区别

代码如下

<!-- test.html -->
<button>Click</button>
//test.js
var btn = document.querySelector('button')
btn.onclick = () => {
    var a = document.createElement('a')
    a.href = 'https://www.baidu.com'
    a.target = '_blank'
    a.click()
}

问题如下:

在火狐中点击按钮没有反应,在谷歌中点击按钮可以创建新的标签页;
test.js加上一条语句

var btn = document.querySelector('button')
btn.onclick = () => {
    var a = document.createElement('a')
    a.href = 'https://www.baidu.com'
    a.target = '_blank'
    
    document.body.appendChild(a)
    
    a.click()
}

改写后的代码都能在两个浏览器中正常运行。所以请问各位朋友这是什么原因,谢谢?

阅读 6.3k
2 个回答

楼主,你之前这不是刚创建好还没添加到页面中就要执行click事件?

浏览器解析差异吧
但是如果想点击按钮访问网页直接用window.open或者location.assign不就可以实现了 为啥要创建dom呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题