moer 发表于 2023-4-8 11:42:46

【所有版本】 VideoPlayer 组件请支持监听timeupdate事件

//使用事件监听方式捕捉事件
Forguncy.Page.getCell("cell_video").bind("timeupdate",function()
        {
          var timeDisplay;
        //用秒数来显示当前播放进度
        timeDisplay = Math.floor(video.currentTime);
        console.log(Math.floor(video.currentTime))
        }
);
上面的写法,是不支持的,报错如下


JavaScript的写法是支持的,
//获取视频插件的单元格监听播放时间cell_video
var video = document.getElementById('r0c0p_video');
video.addEventListener("timeupdate",function(){
          var timeDisplay;
        //用秒数来显示当前播放进度
        timeDisplay = Math.floor(video.currentTime);
        console.log(Math.floor(video.currentTime))
       
},false);
JavaScript的写法有个弊端, 不能使用单元格名称,一点要查看html的div 的ID,设计器移动了单元格位置,还需要去修改它。

Grayson.Shang 发表于 2023-4-10 14:46:42

大佬您好,拼接肯定不是一个好的方法,我们也肯定不建议这样去做,后面若是修改了,这种也容易出现问题。
而咱们说的这种给单元格增加监听事件的操作,不同类型的单元格都不太一样,就算去做也是一个比较大的工程,时间跨度会比较长,我这边研究了一下videoplayer,发现其实可以直接通过对象的属性值获取到vIdeo的id




var cell = Forguncy.Page.getCell("myvideo");
console.log(cell)

cell = cell._pageCell.cellType._video

console.log(cell.id);

var ele = document.getElementById(cell.id)
console.log(ele)



Grayson.Shang 发表于 2023-4-10 12:09:58

大佬您好,咱们活字格提供的JS接口,其实是可以和咱们平时写的JS联系起来的,
比如下面这是一个文本框,在活字格中名称管理器中,命名为mytest,然后我这边通过,下面的代码,就可以获取到对应的单元格,我这边打印出来
var cell = Forguncy.Page.getCell("mytest");
console.log(cell)结果是这样子的,其中有一个属性就是HTML5中的标签id


我这边就可以通过这个id,使用document.getElementById来获取JS中的对象
var cell = Forguncy.Page.getCell("mytest");
console.log(cell)

cell = cell._pageCell

console.log(cell.id);

var ele = document.getElementById(cell.id)
console.log(ele)
可以看到,我这边是可以通过id,拿到对应的DOM元素的

moer 发表于 2023-4-10 12:50:33




var cell_video_id = Forguncy.Page.getCell("cell_video")._pageCell.id
console.log("cell_video_id ="+cell_video_id );

得到的不是真实的html 元素的ID

或许你告诉我去拼接, 但我觉得这是坏主意。 低代码不应该让我去做这么多事情。
就应该提供监听事件,让我去配置监听到后,去执行“编辑命令”

moer 发表于 2023-4-10 16:51:42

给单元格增加监听事件的操作, 不是给单元格,是给videoplayer 增加监听事件

Grayson.Shang 发表于 2023-4-10 17:50:55

{:5_110:}
页: [1]
查看完整版本: 【所有版本】 VideoPlayer 组件请支持监听timeupdate事件