gpt4 book ai didi

javascript - 从 iframe 调用父级上的触摸事件

转载 作者:行者123 更新时间:2023-12-03 09:10:14 26 4
gpt4 key购买 nike

我尝试在用户与 iframe 交互时调用触摸移动事件。

此代码位于包含 iframe 的顶级页面。

var myIframe = document.getElementById('iFrame');
var myIframeDoc = myIframe.contentWindow.document;
myIframeDoc.addEventListener('touchmove', function(event){

console.log('iframe touched');

var e = document.createEvent('TouchEvent');
//e.touches = [{pageX: 10, pageY: 10}];
//e.initTouchEvent('touchstart', true, true);
e.initUIEvent('touchstart', true, true);

}, false);

因此,当用户触摸在 iframe 上移动时,它将调用下面的事件之一(也在顶级页面)。

document.addEventListener("touchmove", function(event){

alert('touchmove');

});

document.addEventListener("touchstart", function(event){

alert('touchstart');

});

document.addEventListener("touchend", function(event){

alert('touchend');

});

但是触摸事件不会在父层上触发...但是控制台日志工作正常,因此它正在拾取 iframe touchmove,但 TouchEvent 部分似乎不起作用。

简而言之,我需要能够触发事件,就像用户在与 iframe 交互时触摸了父页面一样。

最佳答案

您没有调度该事件。我还必须将其创建为 MouseEvent

document.addEventListener("touchstart", function (event) {
alert('touchstart');
});
// Fix 1 (test in mobile, it may need to be feature detected)
// Or not work reliably across browsers, some clients will need TouchEvent
var e = document.createEvent('MouseEvent');
e.initUIEvent('touchstart', true, true);
//Fix 2
document.dispatchEvent(e);

关于javascript - 从 iframe 调用父级上的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com