如何在CodeIgniter 4控制器中让PHP页面在新标签页打开?
在CodeIgniter 4控制器中实现页面在新标签页打开的方法
你当前的写法无效,因为CodeIgniter 4的view()函数第三个参数是视图的配置选项(如缓存时间、调试模式等),并不包含target参数,所以设置array('target' => '_blank')不会起到控制新标签页的作用。
正确的实现方式:
前端触发(推荐):控制新标签页打开的逻辑应该放在前端触发跳转的元素上,比如链接或按钮:
<!-- 链接方式 --> <a href="<?= site_url('你的控制器/方法') ?>" target="_blank">打开简历页面</a> <!-- 表单提交方式 --> <form action="<?= site_url('你的控制器/方法') ?>" method="get" target="_blank"> <!-- 表单内容 --> <button type="submit">提交并在新标签页打开</button> </form>这种方式不会被浏览器拦截,是最稳妥的方案。
控制器端处理(不推荐,可能被拦截):如果必须在控制器中实现,可以通过输出JavaScript代码来唤起新标签页:
// 先渲染视图内容 $viewContent = view('/pdfrepo/resume-page-pdf', $data); // 输出JS打开新标签页 echo '<script>window.open("data:text/html;charset=utf-8,' . rawurlencode($viewContent) . '", "_blank");</script>'; return;注意:这种方式大概率会被浏览器的弹出窗口拦截器阻止,用户需要手动允许才能生效。
内容的提问来源于stack exchange,提问作者Shubair
相关产品推荐
相关产品推荐

