首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用历史API HTML5的Web上使用JavaScript触发按钮?

如何在使用历史API HTML5的Web上使用JavaScript触发按钮?
EN

Stack Overflow用户
提问于 2020-02-19 23:08:11
回答 1查看 337关注 0票数 0

我正在开发一个自动点击的Chrome扩展。我的扩展在多页应用程序上工作。它可以点击网站上的按钮。但我有一个问题,这个特定的网站,是一个单一的网页应用程序。

我的扩展程序无法使用此JavaScript触发按钮

代码语言:javascript
运行
复制
function clickButton(){
var submit =  document.getElementsByClassName(".class");
submit.click();
}

我的问题是,如何触发按钮单击单个页面应用程序?因为使用.click()似乎不起作用

进一步信息

我的扩展工作方式是我点击一个搜索按钮,它显示我的结果。如果有结果,我会做一些具体的事情。但是如果结果是空的,我返回到前一页(搜索页),然后再按下搜索按钮。我的分机不能点击“搜索”按钮或“后退”按钮。我的假设是,当我使用.click()单击按钮时,web不会请求显示特定的HTML页面。我说错了吗?

有关此站点的另一个信息

所以这个网站是一个单一的页面应用程序。当我登录到这个网站后,它带我到https://sample.com/page1 -which是一个家。然后我转到搜索页面( URL仍然相同,但它显示了一个不同的布局,即搜索页面)。在搜索页面上,我输入搜索参数,然后按下搜索按钮( URL仍然相同,但它显示不同的布局,即搜索结果)。因此,我猜这些网页的工作方式是,每次我点击某个页面时,它都会使用history.pushState -i猜测请求页面布局。所以我想知道是否有一种方法来操纵这个history.pushState?例如,与其单击后退按钮,我是否可以直接进入所需的页面?

EN

回答 1

Stack Overflow用户

发布于 2020-02-19 23:26:34

document.getElementsByClassName(".class")返回一个数组,因此array.onclick()将无法工作。

要触发html事件,不仅要单击:

代码语言:javascript
运行
复制
function trigger(elm, type) {
  if (elm) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent(type, true, true);
    elm.dispatchEvent(evt);
  }
}

就你而言,我认为你想:

代码语言:javascript
运行
复制
trigger(document.querySelector('.class'), 'click')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60310645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档