wordpress 使用JavaScript关闭元素或弹出窗口

jvlzgdj9  于 2022-12-18  发布在  WordPress
关注(0)|答案(3)|浏览(196)

我有一个用Elementor创建的弹出窗口,打开时会播放视频。我试图让它在视频结束后关闭(比如90秒),但我找不到如何用Javascript关闭元素或弹出窗口。
我试过类似https://github.com/elementor/elementor/issues/7085的东西,但因为它不是一个点击动作,只是一个等待和关闭功能,我不认为我不能让它工作。
任何方向都有帮助。谢谢。

blmhpbnm

blmhpbnm1#

选项1 -延时关闭

setTimeout(
   function(){
      document.querySelector('.dialog-close-button').click();
   }, 90000);
);

选项2 -触发ended事件时关闭(请参阅https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended_event

注意:这是一个贪婪的关闭-它会点击关闭按钮上的任何打开的弹出窗口,但除非你有多个弹出窗口,谁在乎呢?

const video = document.querySelector('video');

video.addEventListener('ended', (event) => {
  document.querySelector('.dialog-close-button').click();
});

不太贪心选项-如果你想关闭一个特定的弹出窗口,给予你的弹出窗口一个类,比如〉Advanced中的DATPOPUP,然后使用下面的代码:

const video = document.querySelector('video');

video.addEventListener('ended', (event) => {
  document.querySelector('.DATPOPUP .dialog-close-button').click();
});
  • 另请注意 *:在你的代码中,你引用了.close-button作为关闭按钮的类选择器,不确定最近几个月是否发生了变化,但是当前的Elementor Pro给这个元素类.dialog-close-button
tuwxkamq

tuwxkamq2#

元素乐队的人给了我这个:

jQuery( document ).ready(function($){
$(document).on('click','.elementor-location-popup a', function(event){
    elementorProFrontend.modules.popup.closePopup( {}, event);
}) });

我希望这对你有用。

hxzsmxv2

hxzsmxv23#

我仍然没有找到任何元素特定的调用,但我能够去超级简单,只是模拟90秒后点击关闭按钮。

setTimeout(
   function(){
      document.querySelector('.close-button').click();
   }, 90000);
);

我很想听到一个更好的(适当的)方法来做到这一点,但如果任何人正在寻找一个类似的热修复这个工程。

相关问题