找回密码
 立即注册

QQ登录

只需一步,快速开始

306955302

金牌服务用户

5

主题

16

帖子

53

积分

金牌服务用户

积分
53
QQ
306955302
金牌服务用户   /  发表于:2017-6-14 12:32  /   查看:7636  /  回复:14
本帖最后由 306955302 于 2017-6-19 11:08 编辑

TIM截图20170614123041.png
请问按钮单元格如何使用JS触发按钮点击事件?

控件版本V9



14 个回复

正序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-22 11:30:13
15#
首先感谢您的热心帮助。
接下来针对这个问题,您的方案可能行不通,因为elementFromPoint这个是通过点击获取对应对象的,SpreadJS本身是一个canvas,获取的对象直接是这个整体的canvas对象,而不是按钮。然后.click就成了整个canvas的.click。
所以应该无法生效。
另外,兄弟这个2017年的帖子了,咱们就不要挖坟了,谢谢。
回复 使用道具 举报
zibling
注册会员   /  发表于:2020-5-22 08:58:40
14#
306955302 发表于 2017-6-14 15:40
根据你提供的方法,能够得到这个坐标点,不知道怎么用JS去点击这个坐标点,不会canvas,可否提供具体点击 ...

模拟点击可以试一下这个方法
document.elementFromPoint(x, y).click();

评分

参与人数 1金币 +500 收起 理由
Clark.Pan + 500 感谢热心回答

查看全部评分

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-14 17:55:00
13#

不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
306955302
金牌服务用户   /  发表于:2017-6-14 16:44:42
12#
ClarkPan 发表于 2017-6-14 15:50
大概就是注册一个mouseevent事件,通过mousevent事件来点击
oEvent = document.createEvent("MouseEvent ...

好的,谢谢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-14 15:50:05
11#
306955302 发表于 2017-6-14 15:40
根据你提供的方法,能够得到这个坐标点,不知道怎么用JS去点击这个坐标点,不会canvas,可否提供具体点击 ...

大概就是注册一个mouseevent事件,通过mousevent事件来点击
oEvent = document.createEvent("MouseEvents");  
oEvent.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0,x, y);   
oElement.dispatchEvent(oEvent);  
回复 使用道具 举报
306955302
金牌服务用户   /  发表于:2017-6-14 15:40:06
10#
ClarkPan 发表于 2017-6-14 15:18
因为调用点击事件的目的其实就是为了执行事件中的代码,那就跟直接去执行事件中的代码是一样的,所以我们 ...

根据你提供的方法,能够得到这个坐标点,不知道怎么用JS去点击这个坐标点,不会canvas,可否提供具体点击方法呢?谢谢
回复 使用道具 举报
306955302
金牌服务用户   /  发表于:2017-6-14 15:37:17
9#
ClarkPan 发表于 2017-6-14 15:18
因为调用点击事件的目的其实就是为了执行事件中的代码,那就跟直接去执行事件中的代码是一样的,所以我们 ...

因为我在spreasheet中绑定的很多内置属性,页面逻辑比较复杂,最简单的方式就是直接模拟点击。如果不能实现,就需要写很多额外逻辑来处理
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-14 15:18:49
8#
306955302 发表于 2017-6-14 14:56
需求就是通过JS模拟点击这个按钮,并触发这个按钮已经绑定的事件,
类似html中JS模拟点击按钮

因为调用点击事件的目的其实就是为了执行事件中的代码,那就跟直接去执行事件中的代码是一样的,所以我们不需要提供相应的接口,如果您真的需要这么做那么可以使用getCellRect方法获取单元格的坐标,然后使用JS去click这个坐标触发点击事件,getCellRect的相关文档可以参考:
http://sphelp.grapecity.com/webh ... et~getCellRect.html
回复 使用道具 举报
306955302
金牌服务用户   /  发表于:2017-6-14 14:56:53
7#
ClarkPan 发表于 2017-6-14 14:41
确实没有这样的接口,您可以告诉我们您的需求是什么?我们帮您看看有什么更好的方法来解决您的需求。

需求就是通过JS模拟点击这个按钮,并触发这个按钮已经绑定的事件,
类似html中JS模拟点击按钮
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部