从触发onload停止Javascript函数?

时间:2017-12-11 16:12:54

标签: javascript

我有这个功能,会在onClick上弹出一个弹出窗口。但是,它在onClick和onLoad上都有效。当然,对于最终用户来说,每次加载页面时都必须退出窗口会很烦人。有没有人知道如何只在onClick上做这个?删除末尾的功能会完全停止脚本。

function showMailingPopUp() {
    require(
        ["mojo/signup-forms/Loader"],
        function(L) {
          L.start({"baseUrl":"mc.us4.list-manage.com","uuid":"91363270e58a57510d5d933c6","lid":"b2d7dd4078"})
        }
    );

    document.cookie = 'MCPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
    document.cookie = 'MCPopupSubscribed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;'; 
}

showMailingPopUp();

2 个答案:

答案 0 :(得分:1)

调用函数onLoad()的原因是因为您在脚本末尾使用showMailingPopUp();调用它。

onClick功能应遵循以下格式:

<button onclick="showMailingPopUp()">Click me to show mailing popup</button>

答案 1 :(得分:0)

showmailingPopUp使用onclick的原因是因为它无法找到它。它应该在脚本标记之前定义,或者在与事件监听器的JavaScript绑定中定义。

这是一个使用JavaScript的解决方案(向元素添加事件监听器,以便函数正确调用):

function showMailingPopUp() {
    require(
        ["mojo/signup-forms/Loader"],
        function(L) {
          L.start({"baseUrl":"mc.us4.list-manage.com","uuid":"91363270e58a57510d5d933c6","lid":"b2d7dd4078"})
        }
    );

    document.cookie = 'MCPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
    document.cookie = 'MCPopupSubscribed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;'; 
}

document.getElementById("element").addEventListener("click", function(){
    showMailingPopUp();
})

jsFiddle