You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何检测浏览器标签页是否通过target参数打开及对应target值

解决方案

方案1:直接使用window.name(最推荐)

window.open()的第二个参数本身就是目标窗口的window.name属性值,不需要额外传参,原生支持跨域场景,刷新页面值也不会丢失:

  1. 打开窗口的代码保持原有写法即可:
window.open(href, target='pdf');
  1. 新窗口内直接读取window.name做判断:
const $check_target = window.name === 'pdf' ? 1 : 2;

注意:命名尽量增加业务前缀避免和其他逻辑冲突,比如mybiz_pdf,减少重名概率。

方案2:URL参数传值

如果担心window.name被其他逻辑占用,可以把标识拼到打开的URL里:

  1. 打开窗口时拼接参数:
window.open(`${href}?open_target=pdf`, 'pdf');
  1. 新窗口内读取URL参数判断:
const searchParams = new URLSearchParams(window.location.search);
const openTarget = searchParams.get('open_target');
const $check_target = openTarget === 'pdf' ? 1 : 2;

注意:如果URL本身已有其他参数,需要用&拼接,避免参数格式错误。

方案3:同域场景用sessionStorage存储

如果两个窗口同域,也可以通过存储介质传值:

  1. 打开窗口前写入标识:
sessionStorage.setItem('open_target', 'pdf');
window.open(href, 'pdf');
  1. 新窗口内读取后做清理避免干扰其他窗口:
const openTarget = sessionStorage.getItem('open_target');
const $check_target = openTarget === 'pdf' ? 1 : 2;
sessionStorage.removeItem('open_target');

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:24:03