如果可以的话,我目前在我的 WordPress 网站上使用 Divi 插件的弹出窗口,并且遇到了按下 ESC 键时弹出窗口关闭的问题。我的用例要求弹出窗口应保持打开状态,直到用户输入有效的密钥。
不幸的是,这些方法都没有成功阻止按下 ESC 键时弹出窗口关闭。
任何关于如何阻止 ESC 键关闭弹出窗口直到用户输入有效密钥的指导或建议将不胜感激。
我还联系了该插件的支持团队,并热切等待他们的回复。
这是我的代码的简化版本:
let secretKeyField = document.getElementById('mce-SECRETKEY');
let mailerlite = document.getElementById('mailerlite-form-container');
let secretKeyError = document.getElementById('secret-key-error');
let secret_key_form = document.querySelector('#secretkeywrapper');
secretKeyField.oninput = function() {
if (this.value == atob(get_secret_key_by_pathname)) {
secretKeyError.style.display = 'none';
mailerlite.style.display = 'block';
secret_key_form.remove();
} else {
secretKeyError.style.display = 'block';
mailerlite.style.display = 'none';
}
};
let e = document.querySelector('.row-success');
let observer = new MutationObserver(function (event) {
DiviArea.hide('mypopupid');
});
observer.observe(e, {
attributes: true,
childList: false,
characterData: false
});
<style>
#mailerlite-form-container {
display: none;
}
</style>
<div id="secretkeywrapper">
<label for="mce-SECRETKEY">Enter your secret key to get access:</label>
<input type="type" id="mce-SECRETKEY" name="SECRETKEY" />
<div id="secret-key-error" style="display: none; color: red;">The secret key is incorrect. Please try again.</div>
</div>
<div id="mailerlite-form-container">
[divi_shortcode id="931"]
</div>