最近我一直在开发chrome扩展程序。
我已经在devtools.js中成功获得了$ 0
var backgroundPageConnection = chrome.runtime.connect({
name: 'devtools'
});
backgroundPageConnection.onMessage.addListener(function (message) {
// Handle responses from the background page, if any
chrome.devtools.inspectedWindow.eval(`setSelectedElement($0)`, {
useContentScriptContext: true
});
});
但是,在contentscript.js中,我想从$ 0中获取数据
function setSelectedElement(el) {
var widget = $(el).data("__widget__");
// eval widget is null
var id = $(el).attr("id");
// eval id is string
}
简而言之,data()
所获得的一切都是空的
我很困惑,我可以通过attr()
来获取东西,但是不能通过data()
我缺少一些权限吗?
这是manifest.json
{
"name": "Export",
"manifest_version":2,
"version": "4.0.1",
"description": "Export Json",
"browser_action": {
"default_title": "Export",
"default_popup": "popup.html"
},
"content_scripts":
[
{
"matches": ["<all_urls>"],
"js": ["js/core.js", "js/contentscript.js"],
"run_at": "document_end"
}
],
"background": {
"scripts": ["js/background.js"]
},
"devtools_page": "devtools.html",
"web_accessible_resources": ["js/inject.js"]
}