如何设置模态框链接,新标签页打开时跳转至完整注册页?
解决方案
方法一:前端通过自定义属性分离两个地址
把链接的href直接指向完整注册页reg.html,同时添加自定义data-modal-url属性存储模态框要加载的fregister.html地址,再修改JavaScript代码读取这个自定义属性来加载模态框内容。
修改后的链接代码:
<a data-modal-toggle="defaultModal" href="{{url('reg.html')}}" data-modal-url="{{url('fregister.html')}}" class="ls-modal">快速注册</a>
修改后的JavaScript代码:
<script type='text/javascript'> $(document).ready(function(){ $('.ls-modal').on('click', function(e){ e.preventDefault(); // 读取自定义data属性里的模态框加载地址 const modalUrl = $(this).data('modal-url'); $('#authmodal').find('.modal-body').load(modalUrl); }); }); </script>
效果说明:
- 直接点击链接时,JS阻止默认跳转,加载
data-modal-url指向的fregister.html到模态框 - 右键新标签页打开链接时,会直接访问
href指向的reg.html完整注册页
方法二:后端判断请求类型做跳转
如果不想改动前端代码,可在后端处理fregister.html的请求逻辑:
- 检测请求头中的
X-Requested-With字段,若为XMLHttpRequest(AJAX请求),返回表单内容 - 若为非AJAX请求(比如新标签页打开),直接重定向到
reg.html
这种方法完全由后端逻辑控制,无需修改前端的链接和JS代码。
内容的提问来源于stack exchange,提问作者LegoLiam
相关产品推荐
相关产品推荐

