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

Chrome扩展:如何在同域名下持久化前置查询参数?

问题:Chrome扩展中同域名下持久化查询参数?active=true

我开发了一款Chrome扩展,勾选复选框后会给当前页面URL添加?active=true查询参数,但在同域名下跳转到其他页面时,这个参数会丢失。我需要让该参数在同域名的所有页面跳转时都保留,比如:

www.example.com?active=true
www.example.com/product/main?active=true
www.example.com/help?active=true

现有实现代码

<input type="checkbox" name="query" id="queryParams">
const queryParamaOptions = document.querySelector('#queryParams');

function toggleQueryParams(e) {
    chrome.tabs.query({ active: true, lastFocusedWindow: true }, (tabs) => {
        if (e.target.checked === false) {
            chrome.storage.local.set({
                query: false
            });
            return;
        } else {
            chrome.storage.local.set({
                query: true
            });

            // 构建带参数的URL
            const params = encodeURI('active=true');
            const url = tabs[0].url;
            const hashStart = url.indexOf('#') === -1 ? url.length : url.indexOf('#');
            const querySymbol = url.indexOf('?') === -1 ? '?' : '&';
            var newUrl = `${url.substring(
                0,
                hashStart
            )}${querySymbol}${params}${url.substring(hashStart)}`;

            // 刷新页面应用新URL
            chrome.tabs.update(tabs[0].id, { url: newUrl });
        }
    });
}

queryParamaOptions.addEventListener('click', (e) => toggleQueryParams(e));

我的初步思路

  • 首次执行toggleQueryParams时,将当前域名存储到localStorage中
  • 在后台脚本中用chrome.tabs.onUpdated监听changeInfo.url的变化(因为弹窗在页面跳转后会关闭)
  • 判断当前页面域名是否和存储的域名匹配,若匹配则执行参数添加逻辑

请问这个思路是否可行?有没有其他更合适的解决方案?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 19:51:03