在我的应用程序中,我有一个名称空间的应用程序,并且有myApp
的信息或元数据可能会对devpane有用。
window.myApp = new App();
如何将以下信息转发或发送到devtool.js
?
window.myApp.metadata; // information
我可以使用自定义元数据序列化的函数从devtool发送请求吗?
我在下面的解决方案中看过类似的帖子,当我尝试时会返回null
。
chrome.devtools.inspectedWindow.eval("window.myApp", {
useContentScriptContext: true
})
注意:如果可以提供非常棒的样本模板。
答案 0 :(得分:1)
这就是我解决这个问题的方法。感觉比必要的复杂,但确实有效。
在检查窗口的上下文中
基于此question。
这是您可以访问window.myApp.metadata
并可以将其放入数据对象的位置。
var event = new CustomEvent("RebroadcastExtensionMessage", {data: ""});
window.dispatchEvent(event);
在内容脚本中
这只是将数据转发到后台页面。
window.addEventListener("RebroadcastExtensionMessage", function(evt) {
chrome.runtime.sendMessage(evt)
}, false);
在后台页面
基于Chrome docs。
chrome.runtime.onConnect.addListener(function(devToolsConnection) {
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
devToolsConnection.postMessage(request)
});
})
在devtools.js
var backgroundPageConnection = chrome.runtime.connect({
name: "devtools-page"
});
backgroundPageConnection.onMessage.addListener(function (message) {
// Data has arrived in devtools page!!
});