找回密码
 立即注册

QQ登录

只需一步,快速开始

KYddd

注册会员

6

主题

27

帖子

67

积分

注册会员

积分
67
KYddd
注册会员   /  发表于:2022-12-5 17:03  /   查看:2906  /  回复:12
10金币
本帖最后由 KYddd 于 2022-12-5 17:53 编辑

我现在表格里有多个超链接,我希望点击的时候先获取点击的超链接的路径,拼上参数后再跳转,有什么好的解决办法吗?

主要问题就是怎么拿到点击的超链接的url,监听哪个事件?

12 个回复

正序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-7 18:30:42
13#
本帖最后由 Lynn.Dou 于 2022-12-7 18:35 编辑

注意到您另开了新帖,那关于此问题后续在新帖中交流:
https://gcdn.grapecity.com.cn/fo ... 58670&fromuid=59119
本贴先做结帖处理。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-7 17:51:14
12#
本帖最后由 KYddd 于 2022-12-7 17:52 编辑
Lynn.Dou 发表于 2022-12-6 17:25
目前没有监听超链接点击的事件,所以需要您结合实际业务情况详细描述下需求,这边看看是否有其他方案。

我现在遍历了所有的超链接,给超链接绑定了自定义事件

  1. //   获取超链接
  2.             spread.suspendPaint();
  3.             // 遍历获取sheet中的超链接
  4.             var sheet = spread.getActiveSheet();
  5.             var rc = sheet.getRowCount();
  6.             var cc = sheet.getColumnCount();
  7.             for(var r = 0; r < rc; r++) {
  8.                 for(var c = 0; c < cc; c++) {
  9.                     var hyperlink = sheet.getHyperlink(r, c);
  10.                     if(hyperlink) {
  11.                         var newHyperlink = JSON.parse(JSON.stringify(hyperlink));
  12.                         console.log('newHyperlink',newHyperlink)
  13.                         // 给每个超链接绑定自定义事件
  14.                         newHyperlink.command="customHyperlink"
  15.                         sheet.setHyperlink(r, c,newHyperlink);
  16.                     }
  17.                 }
  18.             }
  19.             spread.resumePaint()
复制代码

然后自定义事件里面怎么拿到点击的这个超链接的url?
  1. spread.commandManager().register("customHyperlink", {
  2.                 canUndo: false,
  3.                 execute: function (context, options, isUndo) {
  4.                     console.log('context',context)
  5.                     console.log('options',options)
  6.                 }
  7.             });
复制代码
context和options里面能拿到这个超链接的url吗
image.png954620971.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-7 17:11:10
11#
您客气了,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-7 16:26:16
10#
Lynn.Dou 发表于 2022-12-7 15:55
参考附件demo,导入demo中的xlsx文件,观察超链接的url。
主要代码如下:

好的,谢谢您
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-7 11:59:10
8#
KYddd 发表于 2022-12-7 09:04
实际业务需求就是上面说的,那现在只能遍历所有超链接,获取url拼接参数后,再用代码重新生成超链接?如 ...

这边先尝试整理一个demo,稍后贴中发给您。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-7 09:04:19
7#
本帖最后由 KYddd 于 2022-12-7 09:11 编辑
Lynn.Dou 发表于 2022-12-6 17:25
目前没有监听超链接点击的事件,所以需要您结合实际业务情况详细描述下需求,这边看看是否有其他方案。

实际业务需求就是上面说的,那现在只能遍历所有超链接,获取url拼接参数后,再用代码重新生成超链接?如果是的话,怎么遍历超链接并拼参数呢?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-6 17:25:13
6#
KYddd 发表于 2022-12-6 11:49
可不可以不遍历所有超链接,我想实现的是点击哪个,就获取点击的这个超链接的url,我拼了参数后再自己调 ...

目前没有监听超链接点击的事件,所以需要您结合实际业务情况详细描述下需求,这边看看是否有其他方案。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-6 11:49:32
5#
Lynn.Dou 发表于 2022-12-6 11:38
您拼接的参数是固定的吗?如果是,可以在加载excel文件后,遍历获取超链接原有的url,拼接参数后再对url进 ...

可不可以不遍历所有超链接,我想实现的是点击哪个,就获取点击的这个超链接的url,我拼了参数后再自己调用window.open()
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-6 11:38:31
4#
本帖最后由 Lynn.Dou 于 2022-12-6 11:40 编辑

您拼接的参数是固定的吗?如果是,可以在加载excel文件后,遍历获取超链接原有的url,拼接参数后再对url进行修改。
如果不是,请结合实际业务情况详细描述下您的需求,以便问题的进一步调研。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-12-5 19:12:33
3#
Lynn.Dou 发表于 2022-12-5 18:54
您好,
超链接单元格提供了回调函数,可以定义想执行的操作,您看下是否满足需求。
学习指南相关介绍:

我现在导入的excel已经有超链接了,你发的那个里面的事件是用代码插入的超链接才能触发的吧,我想的是能不能直接监听excel做好了的超链接的点击事件
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部