gpt4 book ai didi

javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?

转载 作者:可可西里 更新时间:2023-11-01 09:31:11 25 4
gpt4 key购买 nike

我编写了一个非常简单的 Chrome 扩展程序。它由这个背景页面组成:

<script type="text/javascript">

chrome.tabs.onDetached.addListener(function(tabId, info){
var id = tabId;
chrome.tabs.get(id, function(tab) {
chrome.tabs.create({
windowId : info.oldWindowId,
index : info.oldPosition,
url : tab.url
});
});
});

</script>

它所做的只是允许您从窗口中拉出一个选项卡,而不会丢失该选项卡和窗口中的网址。当您分离标签时,它基本上会复制标签。

问题是这在 Mac 上完美运行,但是当我在两台不同的 Windows 机器上尝试时,我得到了这个错误

background.html:7Uncaught TypeError: Cannot read property 'url' of undefined

选项卡对象似乎没有传递到 get 回调中。有谁知道为什么会这样?显然是当我在 Mac 上运行代码时。

最佳答案

问题是选项卡 ID 在分离后会发生变化(旧的不再存在)。不确定它是错误还是功能,但如果它在 Mac 和 PC 之间不一致,那么它肯定是一个错误(可能只是性能差异 - api 方法执行速度比标签分离在不同计算机上更快)。

mrtsherman 的解决方法走在了正确的轨道上,只是您应该将 info 保存为 id 而不是保存 id > 已经没有任何意义了。然后您将拥有重新创建标签的所有信息(使用附加的 info 获取标签 ID,并保存分离的 info 以获取旧位置和窗口)。

关于javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com