Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript检测文本,然后单击弹出窗口的关闭按钮_Javascript_Jquery - Fatal编程技术网

Javascript检测文本,然后单击弹出窗口的关闭按钮

Javascript检测文本,然后单击弹出窗口的关闭按钮,javascript,jquery,Javascript,Jquery,我在弹出窗口中嵌入了一个表单 当弹出窗口出现,然后填写表单时,会出现成功消息,感谢您的订阅 我试图实现的是在检测到消息时,应该通过js自动单击ID为buttonidclose的弹出窗口的关闭按钮 以下是html: 订阅下载我们的小册子 *表示需要 电子邮件地址* 名字* 姓 电话号码* 函数${window.fnames=new Array;window.ftypes=new Array;fnames[0]='EMAIL';ftypes[0]='EMAIL';fnames[1]='F

我在弹出窗口中嵌入了一个表单

当弹出窗口出现,然后填写表单时,会出现成功消息,感谢您的订阅

我试图实现的是在检测到消息时,应该通过js自动单击ID为buttonidclose的弹出窗口的关闭按钮

以下是html:

订阅下载我们的小册子 *表示需要 电子邮件地址* 名字* 姓 电话号码*

函数${window.fnames=new Array;window.ftypes=new Array;fnames[0]='EMAIL';ftypes[0]='EMAIL';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[4]='PHONE';ftypes[4]='PHONE';jQuery;var$mcj=jQuery.noConflicttrue;

×
您可以使用布尔变量使变量在默认情况下为false,并在填充表单时将其值更改为true,然后启动函数

function ClickClose (){
while (variable == true){
//    change class name here
}
}
你可以用另一种方式来做,因为你喜欢这可以是一种方式…

我建议使用

还可以看看


代码取自mozilla示例并经过修改

请查看:应该是你正在做的for@Matt.S首先,这是一个嵌入的maichimp表单,如何检测成功消息?你能发布一些你迄今为止尝试过的代码吗?弹出窗口的标记是什么?它是否包含在一个文件中?恐怕这太宽泛了,无法用可用信息回答。请查看此答案:@TomM请检查,我已更新并添加了问题代码。请您用我可以检查的代码一步一步地指导我。谢谢你的帮助!var a=假;函数clickClose{while variable==false{document.getElementByIdtest.classList.addtest1';document.getElementByIdMyElement.classList.remove'要删除的类的名称';}}这是一个简单的示例。。。javascript stackoverflow.com/a/906565/9524541中的一些内容将为您提供IDEAPLESE check事件。您没有收到我的问题。首先,我想检测文本是否出现在页面上,如果是,单击功能将适用。如何检查该文本?要检测的是div是否为空,您可以使用var isEmpty=document.getElementById'dummyId.innerHTML==;如果使用jquery变量isEmpty=$dummyId.html==;我在我的服务器上试过了,但没用。这是链接,点击页面底部的下载手册按钮,弹出窗口出现后,当成功消息出现时,什么也不会发生。如果按f12打开开发工具,您将看到错误Uncaught TypeError:未能在“MutationObserver”上执行“observe”:参数1不是“Node”类型。。这是因为在创建lightbox之前,DOM中不存在pum容器。将其更改为“$”.pum overlay“[0]”,它应该可以工作。我还更新了代码,以检查是否在页面上找到$'pum-overlay'。Nimesh你确定吗?在填写表单时,它似乎起作用。实际上,在我的示例中,文本匹配被破坏,因此我将应用您的edit@Nimesh是的,我使用$.text而不是$.text进行匹配,认为这是一个简单的属性而不是方法。此外,您在编辑中更改了字符串的大小写,使其与最初发布的字符串不同。
if ($('.pum-overlay').length > 0) {

    // the mutationobserver api needs a DOM node, not a jquery object. 
    // You can access the node by appending [0] to the jquery call.
    var targetNode = $('.pum-overlay')[0];
    var config = { childList: true, subtree: true};


    var callback = function (mutationsList, observer) {
        for (var mutation of mutationsList) {
            if ($('#mce-success-response').text().indexOf('Thank you for subscribing!') >= 0 ) { 
                $('.pum-close').trigger('click');
            }
        }
    };

    var observer = new MutationObserver(callback);
    observer.observe(targetNode, config);
}