三星S7平板使用Star passPRNT打印回调开新标签,如何返回原标签?
解决Star passPRNT回调打开新标签页的问题
可行解决方案
1. 尝试指定回调窗口目标
Star passPRNT的back参数默认在新标签打开URL,你可以尝试在回调地址中加入target=_self参数,强制在当前窗口打开回调:
passprnt_uri = "starpassprnt://v1/print/nopreview?back="+encodeURIComponent(window.location.href + "&target=_self");
2. 用中转页面实现窗口替换
如果自定义协议不支持target参数,可通过自建中转页面实现原标签页返回:
- 第一步,将
back参数指向你的中转页面:
passprnt_uri = "starpassprnt://v1/print/nopreview?back="+encodeURIComponent("https://你的域名/print-callback");
- 第二步,在
print-callback页面添加脚本,直接替换当前窗口为原页面:
// 替换当前窗口,避免新标签产生 window.location.replace("https://你的域名/原页面地址"); // 也可以用history.back()直接返回上一页(如果原页面在历史栈中) // history.back();
3. 使用固定原页面URL替代动态href
如果window.location.href的动态参数导致新标签触发,直接传入原页面的固定URL试试:
passprnt_uri = "starpassprnt://v1/print/nopreview?back="+encodeURIComponent("https://你的域名/原页面地址");
4. 尝试自定义协议专属参数
部分基于Chrome的Star webPRNT浏览器可能支持额外协议参数控制窗口行为,比如back_mode:
passprnt_uri = "starpassprnt://v1/print/nopreview?back="+encodeURIComponent(window.location.href)+"&back_mode=current";
测试优先级
优先测试方案3(固定URL),其次是方案1(指定target),最后用方案2(中转页面)——这种方式兼容性最强,几乎所有浏览器都支持。
内容的提问来源于stack exchange,提问作者Curt_S
相关产品推荐
相关产品推荐

