重新加载Chrome DevTools扩展侧边栏在页面更改
Reload Chrome DevTools Extension Sidebar on Page Change
这可能是一个在Google Chrome DevTools扩展-检测页面更改的问题,但它已经坐了一年多没有真正的答案,也许我的问题将提供一些新的见解的问题。
我写了一个Chrome扩展,插入一个侧边栏面板到DevTools。侧面板列出了dataLayer事件,用户可以单击所需的事件,然后使用元素选择器在页面上选择另一个元素,插件以点表示法显示元素之间的路径。
这里是Github项目的链接:https://github.com/gruebleenagency/gtm-data-layer-sifter
它像我希望的那样正常工作,但是如果你导航到另一个页面,侧边栏不会再次初始化,所以它会显示前一页的信息。
你可以看到我在我的background.js文件中有这个:
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
reloadExtension();
}
});
function reloadExtension() {
// ???
}
我想知道是否有任何方法使侧边栏重载在这一点上?还是我做错了?我花了很多时间来摆弄这个,试图让它工作,但似乎没有什么奏效。
谢谢大家的帮助。
这是我的解决方案。很有可能这不是它应该做的方式,但我没有时间重写整个插件的时刻,所以它必须做现在。如果有任何建议告诉我该如何做,我将不胜感激。也许它会对处于不同情况的人有所帮助。
本质上,听制表符。onUpdated事件等待'complete'状态,这表明我们已经导航到一个新页面。然后发送消息到Devtools.js来刷新侧面板,通过再次将其页面设置为'panel.html'。
在background.js:chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
reloadExtension(port);
}
});
function reloadExtension(port) {
var message = {action: "reloadExtension"};
port.postMessage(message);
}
在Devtools.js: var sb;
createSidebar();
function createSidebar() {
chrome.devtools.panels.elements.createSidebarPane("GTM dataLayer Sifter", function(sidebar) {
sb = sidebar;
sb.setPage("panel.html");
});
}
var port = chrome.extension.connect({
name: "Devtools.js Communication"
});
// Listen to messages from the background page
port.onMessage.addListener(function(message) {
if(message.action == "reloadExtension"){
sb.setPage("panel.html");
}
});
你可以通过监听onNavigated事件:
在Devtools.jschrome.devtools.network.onNavigated.addListener(() => {
console.log('Inspected page reloaded');
});
相关文章:
- 当侧边栏很长时,滚动/固定侧边栏会被切断
- 创建带有侧边栏的谷歌地图
- 如何在显示侧边栏时禁用背景,单击除侧边栏之外的任何位置都会关闭侧边栏
- 在页脚处停止固定侧边栏-防止重叠
- 如何将javascript添加到Wordpress侧边栏中
- 如何正确地将数据发送到打开的Firefox侧边栏
- 如何制作侧边栏以增加其完整长度
- 固定位置侧边栏不滚动-设置内容的高度
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 火狐 - 扩展 - 如何制作侧边栏
- Chrome扩展等同于Firefox附加侧边栏
- Chrome扩展程序将侧边栏注入页面
- 如何扩展侧边栏和内容到全高度,即使没有内容
- 是否建议开发Chrome侧边栏扩展
- 显示/隐藏侧边栏菜单和扩展颜色大小与幻灯片效果
- 重新加载Chrome DevTools扩展侧边栏在页面更改
- 当点击时,在注入的侧边栏chrome扩展中的字段内添加网页上的所选文本
- Firefox扩展,如何从main.js调用侧边栏中的函数
- 使用Javascript扩展侧边栏高度,使其与内容高度相等