Chrome扩展脚本多窗口场景下的当前窗口隔离实现方法
搞定Chrome扩展跨窗口误操作的问题
嘿,我刚好碰到过类似的问题!你的脚本在单窗口下正常,但多窗口时乱选标签页的原因很明确,咱们一步步解决:
问题根源
你原来的chrome.tabs.query({active: true})会返回所有Chrome窗口里的活跃标签页,当开了多个窗口时,tabs[0]取到的不一定是你当前操作窗口的那个标签页,自然就会出现随机修改其他窗口内容的情况。
快速修复方案
只需要给chrome.tabs.query的查询参数加上currentWindow: true,这个参数会把查询范围严格限定在触发按钮点击操作的当前窗口,确保只获取你正在操作的那个窗口的活跃标签页。
修改后的完整代码:
$('#Change_btn').click(function() { chrome.tabs.query({active:true, currentWindow: true},tabs=>{ const url = tabs[0].url.replace("en-US","nb-NO") chrome.tabs.update({url}) }) });
额外小建议
我还顺手给url加了const声明,避免全局变量污染,这是个好习惯哦~
内容的提问来源于stack exchange,提问作者Charlie Golf
相关产品推荐
相关产品推荐

