我正在尝试开发一个chrome扩展,除此之外,还可以将一个元素集中在chrome devtools的元素面板中.
我一直在试着让我的头发上班,但到目前为止还没有运气.
我认为解决我需要的部分关键在于此
以下是eval()和chrome.tabs.executeScript()方法之间的主要区别:
- eval()方法不会对被评估的代码使用孤立的世界,因此代码可以访问被检查窗口的JavaScript状态.当需要访问被检查页面的JavaScript状态时,请使用此方法.
- 正在评估的代码的执行上下文包括Developer Tools控制台API.例如,代码可以使用inspect()和$ 0.
- 评估的代码可以返回传递给扩展回调的值.返回的值必须是有效的JSON对象(它可能只包含原始JavaScript类型和对其他JSON对象的非循环引用).处理从检查页面收到的数据时,请特别注意 - 执行上下文基本上由被检查页面控制; 恶意页面可能会影响返回到扩展的数据.
但我无法找到正确的发送消息或执行命令的地方,以便使其工作我只是反复告诉以下内容:
'undefined'的事件处理程序出错:$未定义ReferenceError:$未在chrome-extension:// ffhninlgmdgkjlibihgejadgekgchcmd的Object.ftDev.processMsg(chrome-extension://ffhninlgmdgkjlibihgejadgekgchcmd/ftDev.js:39:31)中定义/ftDev.js:16:7在chrome.Event.dispatchToListener(event_bindings:387:21)的chrome.Event.dispatch_(event_bindings:373:27)位于chrome.Event.dispatch(event_bindings:393:17)的miscellaneous_bindings: 166:35位于chrome.Event.dispatchToListener(event_bindings:387:21)位于chrome.Event.dispatch_(event_bindings:373:27)的chrome.Event.dispatch(event_bindings:393:17)位于Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:254:22)event_bindings:377 chrome.Event.dispatch_
理想情况下,我想使用chrome控制台的inspect()方法而不是$()方法.
的manifest.json
{
"name": "XXXXX Ad and Spotlight Debugger",
"version": "0.1",
"manifest_version": 2,
"description": "A tool to help you identify and debug XXXXXX ads and spotlights in Chrome",
"devtools_page": "ftDev.html",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "XXXXXX Debug Tool"
},
"background": {
"persistent": false,
"page": "background.html",
"js": ["background.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["getFTContent.js"],
"all_frames": true
}],
"permissions": …Run Code Online (Sandbox Code Playgroud)