JavaScript触发popstate条件,怎么绕开“用户点击页面”?

chrome内核的浏览器想要触发此事件,就必须在用户点击一下页面中的元素后,才能生效。想问下有没有方法可以用代码模拟用户点击页面的元素?
Ps. 我觉得谷歌如果为了提升用户体验,必须由用户自己点击才行,一定会避开click()这个方法,所以自己测试了document.body.click()后,确实是没有用的。(click()方法应该只是调用了对应元素上注册的点击事件的回调,并不是真正的“点击”)
所以想问问大佬们,有没有其他方法可以实现用户什么都不操作就触发popstate的?

阅读 2.4k
2 个回答

你可以尝试使用CustomEvent

window.addEventListener('popstate', (event) => {
  console.log(`location: ${document.location}, state: ${JSON.stringify(event.state)}`);
});
const event = new CustomEvent('popstate');
event.state = {CustomEvent: "popstate"};
window.dispatchEvent(event);

触发popstate可以使用history.pushState函数,history里的函数可以操作

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