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

PHP广告网络脚本:Popup转Popunder遇about:blank空白页问题

解决方案:将Popup转为Popunder并修复about:blank问题

是的,只需修改这段输出JavaScript的PHP代码就能实现需求(前提是$url变量已正确指向有效的广告链接)。

问题根源

之前出现about:blank的原因大概率是:

  • ChatGPT给出的方案错误处理了URL加载逻辑
  • 或者未正确处理浏览器的焦点机制,导致新窗口无法正常加载目标链接

修改后的代码

替换原PHP中的JS输出部分即可:

if (!isset($_COOKIE['pop_seen'])) {
    header("Content-Type: application/javascript");

    echo 'var homepage = document.querySelector("body");

    var popUp = function(e) {
        // 打开目标广告窗口,指定唯一窗口名称
        var popunder = window.open("'.$url.'", "PopunderWindow", "status=1,toolbar=1,width='.do_config(75).',height='.do_config(76).',top=300,left=250,resizable=yes");
        if (popunder) {
            // 让原页面重新获得焦点,将新窗口压至下层(核心逻辑)
            window.focus();
            // 移除点击事件,避免重复触发
            homepage.removeEventListener("click", popUp, false);
        }
    }
    homepage.addEventListener("click", popUp, false);';
    exit;
}

关键改动说明

  1. 焦点切换实现Popunder:通过window.focus()让原页面夺回焦点,新打开的广告窗口会自动降至当前页面下层,成为Popunder。
  2. 有效性判断:增加if (popunder)检查,避免浏览器拦截弹窗后出现控制台错误。
  3. 唯一窗口名称:将窗口名称改为PopunderWindow,避免与其他窗口重名导致异常。

额外检查项

  • 确认$url变量已正确赋值为完整的广告链接(如https://example.com/ad),而非空值或相对路径,这是解决about:blank的核心前提。
  • 现代浏览器对弹窗限制严格,若用户已阻止该网站弹窗,此逻辑可能无法生效,需提示用户解除拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:43:21