这可能取决于您的弹出窗口的上下文,但您可能会考虑使用侵入性较小且容易被广告拦截的东西,例如页面中的灯箱或其他基于 ajax 的显示工具,而不是使用传统的弹出窗口。您可以从提交按钮上的单击事件触发灯箱,用它显示您的消息,然后在关闭或确认时提交表单。
避免查看表单结果页面依赖于 javascript 的解决方案,因为某些(不常见的)用户可能会禁用它。如果按上述方式实施,这些用户会错过您的弹出窗口,但表单仍会通过。
您可以使用 jQuery 来实现这一点,而无需修改 MODx 用于生成表单的 php 代码,而是通过将 javascript 放在 xhtml 标头中,将单击事件附加到表单的提交按钮。例如:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="/colorbox/jquery.colorbox.js"></script>
<script type="javascript">
$("#FormID.input[type=submit]").click(function(e) {
/* prevent form from submitting */
e.preventDefault();
e.stopPropagation();
/* on colorbox close, submit form */
$(document).bind('cbox_close', function(){
e.submit(); // submit the form on close
});
/* open the colorbox */
.colorbox({href:"http://example.com/url1"});
});
</script>
我在这里使用了 ColorBox,但同样的想法应该适用于其他灯箱替代品。我没有在浏览器中对此进行测试,因此请务必根据需要进行测试和调整。