Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何清理Chrome扩展上的网页卸载/禁用_Javascript_Html_Css_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 如何清理Chrome扩展上的网页卸载/禁用

Javascript 如何清理Chrome扩展上的网页卸载/禁用,javascript,html,css,google-chrome,google-chrome-extension,Javascript,Html,Css,Google Chrome,Google Chrome Extension,我有一个Chrome扩展,可以在网页中插入一些标记。此标记通常由扩展插件插入的CSS隐藏 当用户使用扩展的浏览器按钮关闭扩展时,我将使用内容脚本删除所有标记。但是,当卸载或禁用扩展时,标记会留在网页上,但隐藏它的CSS会被卸载。这留下了一个相当畸形的网页 在删除内容脚本和css之前,是否有任何方法可以清除插入的标记 谢谢 发布我最终采用的解决方案 Chrome有一个怪癖,在卸载扩展时删除扩展时,扩展自动插入的css(在清单中列出)会被删除。但是,由扩展程序以编程方式插入的css保留在原位 因此,

我有一个Chrome扩展,可以在网页中插入一些标记。此标记通常由扩展插件插入的CSS隐藏

当用户使用扩展的浏览器按钮关闭扩展时,我将使用内容脚本删除所有标记。但是,当卸载或禁用扩展时,标记会留在网页上,但隐藏它的CSS会被卸载。这留下了一个相当畸形的网页

在删除内容脚本和css之前,是否有任何方法可以清除插入的标记


谢谢

发布我最终采用的解决方案

Chrome有一个怪癖,在卸载扩展时删除扩展时,扩展自动插入的css(在清单中列出)会被删除。但是,由扩展程序以编程方式插入的css保留在原位

因此,我将css插入从清单切换到了编程。现在,即使当用户卸载扩展时,CSS仍然停留在页面上隐藏我的标记。直到下一页重新加载,此时CSS和标记都被丢弃


不确定这种注入的CSS不删除行为是一种特性还是一个bug,但它目前正在发挥作用。

你可能不能。您可以尝试玩转,但我怀疑在删除扩展本身之前它是否会被触发。如果用户正在卸载您的扩展,您不必对他们那么好:)简单的刷新就能修复它。我想知道卸载时是否也会删除插入的脚本(相对于内容脚本)?如果没有,你可以玩这个。可能您的注入脚本会定期向后台页面发送消息。当消息失败时,分机就消失了(如果chrome自动更新了你的分机,消息也会失败)@Xan:谢谢!已经使用了chrome.management API。它在其他扩展之后进行清理时可能有用,但在self上没有。@ZigMandel:谢谢!这似乎是一个合理的选择。我将玩它并报告。(不过,我不喜欢在所有页面上使用重复计时器的想法)。