首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >只有当executeScript脱离停靠时,背景页中的DevTools才会默默地失败。

只有当executeScript脱离停靠时,背景页中的DevTools才会默默地失败。
EN

Stack Overflow用户
提问于 2014-04-11 10:44:31
回答 1查看 408关注 0票数 2

我的DevTools扩展将脚本注入到检查窗口中,以便解析和接收消息--通常是在页面加载时,但也是在第一次打开DevTools时。

背景页中的相关行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chrome.tabs.executeScript(message.tabId,{ file: 'insert.js', runAt: 'document_idle' },function(results){console.log(results);});

这一行通常在后台控制台成功时显示[null] --并且在以停靠状态打开DevTools时,以及当用户在任何状态下导航到具有DevTools的新URL时,都是成功的。只有当DevTools处于非停靠状态打开时,它才不能工作;在这种情况下,调用正在悄然失败,而results正在返回undefined

权限是“选项卡”、"“、”“;再说一遍,它只在这一种非常特殊的情况下不起作用。

这是一个已知的问题,解决办法,还是我应该认为这是一个铬缺陷?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-12 07:14:56

你的窃听器报告的测试用例包含一个错误。

事件页面中的onMessage事件侦听器期望选项卡ID可用为message.tabId

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chrome.tabs.executeScript(message.tabId,{ file: 'insert.js', runAt: 'document_idle' });

然而,在devtools页面中,消息被发送为"tabID“(注:大写D)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chrome.runtime.sendMessage({type: 'newpageload',tabID:  chrome.devtools.inspectedWindow.tabId});

由于message.tabId在事件页中未定义,Chrome默认将内容脚本插入到电流窗的active选项卡中。当开发人员工具被卸载时,此选项卡(巧合地)与检查的选项卡相同,因此您没有注意到错误。

当devtools被卸载时,当前窗口是devtools。由于您不能编写开发工具的脚本,因此似乎不会发生任何事情。如果在回调的chrome.runtime.lastError中读取chrome.tabs.executeScript的值,就会注意到您试图在错误的窗口中插入脚本。

将"tabID“更改为"tabId”后,测试用例将按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23020324

复制
相关文章
量子计算(十六):其他类型体系的量子计算体系
离子研量子计算在影响范围方面仅次于超导量子计算。早在2003年,基于离子阴就可以演示两比特量子算法。离子附编码量子比特主要是利用真空腔中的电场因禁少数离子,并通过激光冷却这些因禁的离子。以因禁Yb+为例,下图(a)是离子阱装置图,20个Yb+连成一排,每一个离子在超精细相互作用下产生的两个能级作为量子比特的两个能级,标记为|↑〉和|↓〉。下图(b)表示通过合适的激光可以将离子调节到基态,然后下图(c)表示可以通过观察荧光来探测比特是否处于|↑〉。离子阱的读出和初始化效率可以接近100%,这是它超过前两种比特形式的优势。单比特的操控可以通过加入满足比特两个能级差的频率的激光实现,两比特操控可以通过调节离子之间的库伦相互作用实现
Lansonli
2022/12/31
1.1K0
量子计算(十六):其他类型体系的量子计算体系
[数据结构与算法] 链表的其他类型
单链表是最简单的链表,单链表的一种变形就是循环单链表,其中最后一个结点的next域不用None,而是指向表的第一个结点,这样就形成了一种循环结构,所以叫循环单链表。 双链表:单链表只有1个方向的链接,只能做一个方向的扫描和逐步操作。单链表的next指针域指向下一个结点,而双链表结点除了具有next指针外,还有一个previous指针,指向上一个结点。单链表中查找元素只能从头结点开始,根据他的next指针域找到下一个结点,而双链表最大的区别在于不仅能找到下一个结点,还能找到上一个结点。 循环双链表:然后看下什
用户1622570
2018/04/12
8920
【转】string类型和其他类型的值的互转
由于在开发过程中遇到类型转换问题,比如在web中某个参数是以string存在的,这个时候需要转换成其他类型,这里官方的strconv包里有这几种转换方法。
yiduwangkai
2019/09/17
1.4K0
移除除管理员之外的其他用户的WordPress 更新升级提示
对于多用户博客,一般只有一个管理员。维护后台等之类的工作一般都是管理员来做的,对于WordPress的更新升级,为了避免某些情况,可以通过以下代码实现除管理员之外的其他用户的Wordpress 更新升级提示都被禁止。 下面这段代码确保除了管理员之外的用户不会收到Wordpress升级提示: // REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentus
Jeff
2018/01/19
5320
MySQL其他类型常用函数
INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换为数字表示的网络字节序,这样可以方便地进行IP或者网段的比较。 比如下面的表,想要知道192.168.1.1和192.168.1.10之间一共有多少IP地址。
秋白
2019/02/21
7490
MySQL其他类型常用函数
go的数据类型-其他数据类型-pointer(二)
在Go语言中,我们也可以使用指针数组来存储多个指针。指针数组是一个数组,其每个元素都是指针类型。我们可以使用数组下标和*运算符来访问指针数组中的元素,如下所示:
堕落飞鸟
2023/04/20
3290
go的数据类型-其他数据类型-function(二)
函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:
堕落飞鸟
2023/04/20
3150
go的数据类型-其他数据类型-interface(二)
在Go语言中,接口可以被用来定义变量和函数参数类型。例如,下面的示例演示了如何定义一个接口类型的变量和函数参数:
堕落飞鸟
2023/04/20
2840
go的数据类型-其他数据类型-pointer(四)
指针类型变量不能直接与非指针类型变量进行比较,需要先将指针类型转换为对应的非指针类型。
堕落飞鸟
2023/04/20
3200
go的数据类型-其他数据类型-function(一)
函数是Go语言中一种非常重要的数据类型,它可以被用来定义和调用函数,从而实现程序的模块化和代码复用。
堕落飞鸟
2023/04/20
4780
go的数据类型-其他数据类型-interface(一)
在Go语言中,接口(Interface)是一种特殊的类型,它定义了一组方法签名,但没有实现这些方法的代码。接口可以被任何实现了这些方法的类型实现,从而实现多态性和代码复用。
堕落飞鸟
2023/04/20
3550
go的数据类型-其他数据类型-pointer(三)
在Go语言中,我们可以使用指向结构体的指针来操作结构体的成员。一个指向结构体的指针指向结构体的第一个成员的地址。
堕落飞鸟
2023/04/20
2810
go的数据类型-其他数据类型-interface(三)
在Go语言中,接口可以嵌套在其他接口中,以形成更复杂的接口。例如,下面的示例定义了一个名为Animal的接口,它包含一个名为Move的方法。然后,我们定义了一个名为Bird的接口,它嵌套了Animal接口,并包含一个名为Fly的方法。
堕落飞鸟
2023/04/20
3210
go的数据类型-其他数据类型-channel(二)
以下是一个使用Channel的示例程序,该程序创建了两个Goroutine,并使用Channel在它们之间进行通信和同步。
堕落飞鸟
2023/04/20
8131
go的数据类型-其他数据类型-pointer(一)
在Go语言中,指针是一种非常重要的数据类型。它们允许我们直接访问内存中的数据,并对其进行修改。本文将介绍Go语言中指针的概念、声明、使用、空指针、指针数组、指向结构体的指针等相关内容,并给出示例。
堕落飞鸟
2023/04/19
6321
go的数据类型-其他数据类型-channel(一)
在Go语言中,Channel是一种特殊的数据类型,用于在Goroutine之间进行通信和同步。通过Channel,一个Goroutine可以向另一个Goroutine发送数据或接收数据。这使得Goroutine之间的通信变得非常简单和有效。
堕落飞鸟
2023/04/20
6451
python之函数的其他类型参数
  实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数位置参数、关键字参数,不定长参数相关内容。
jiankang666
2022/12/05
1.1K0
python之函数的其他类型参数
通过JS检测当前设备类型
背景: 基友做了个APP,发了一排二维码,然后互相吐槽了一下,发现移动应用出现也一年了,虽然很简单,但是好像都懒得通过写个JS来判断然后发一个二维码让大家下载应用。虽然内容不多,而且没啥难度,但是动嘴不如动手,总要有人做,就专门整理一下。 简介: 提供了几个JS接口,通过这几个JS接口,可以轻松获取到当前打开页面的浏览器类型,然后根据类型跳转到对应的链接。同时也提供了两个demo方便大家参考。 对应链接:http://microdemo.bihe0832.com/MultiQrcode/index.htm
子勰
2018/05/22
2.3K0
String与其他类型之间转换
写这篇博客的初衷是:今天百度查了下char转String的问题,一位老兄的博客里面写着调用char类型的toString方法。
johnhuster的分享
2022/03/28
3280
点击加载更多

相似问题

python获取我的字典获取元组或列表

10

我有一个值列表,我想迭代地将键-值对附加到python字典中

223

我想从2个python字典中构造一个列表,这些字典有相同的键,但键值不同。

50

为字典列表B中不存在的字典列表A中的每个字典创建字典列表

112

我想让字典a使用字典b。

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文