相关疑难解决方法(0)

如何在Google Chrome扩展程序中真正隔离样式表?

我写了一个谷歌浏览器扩展程序,弹出一个带有自动填充字段的对话框,它有自己的风格,但是有些网站我的CSS完全坏了,看起来不太好看.

我知道使用iFrames隔离样式,但在Google Chrome扩展程序中,无法以这种方式隔离我的HTML和CSS.另一种方法是将我的所有东西包装成一个单独的div,它有自己的id和相关的id,我这样做,但似乎它不适用于某些网站上有"硬"标签样式重载或"! CSS代码中的重要"指令.

所以,我想知道有没有办法真正以z方便的方式隔离我的样式,或者是我的坏carma重载每个小CSS属性来修复每个站点的一个或另一个样式问题?

顺便说一下:我设置我的清单来加载"document_end"中的所有内容,但我发现它并没有被应用到每次DOM准备就绪时每次加载的样式表.

css isolation google-chrome-extension

28
推荐指数
5
解决办法
7060
查看次数

如何在Chrome扩展程序中获取剪贴板数据?

我很难找到有关如何为"Ctrl + C"添加监听器,获取剪贴板数据,然后在Chrome扩展程序中写回剪贴板的最新信息.我找到的所有旧代码都是针对旧版本的,现在已弃用.

javascript clipboard google-chrome google-chrome-extension

16
推荐指数
3
解决办法
7754
查看次数

单击 Chrome 扩展程序的浏览器操作时将文本复制到剪贴板

我想点击我的 Chrome 扩展程序的浏览器操作按钮来复制一些文本,但网站上使用的方法不起作用。

(我意识到有一些类似的问题,但是他们回答在注入的脚本或浏览器操作弹出脚本中复制文本,而不是浏览器操作脚本。)

样板

清单.json:

{
    "name": "Example",
    "version": "0.0.0",
    "manifest_version": 2,
    "permissions": ["clipboardWrite"],
    "browser_action": {"default_title": "Copy some text"},
    "background": {
        "scripts": ["events.js"],
        "persistent": false
    }
}
Run Code Online (Sandbox Code Playgroud)

事件.js:

chrome.browserAction.onClicked.addListener(_ => {
    copy(new Date().toISOString().slice(0, 19))
})

// Define copy() here.
Run Code Online (Sandbox Code Playgroud)

方法一

不要定义copy并希望它像在控制台中那样全局定义。

不是。

方法二

function copy(text) {
    navigator.clipboard.writeText(text)
}
Run Code Online (Sandbox Code Playgroud)

失败并显示错误消息“DOMException: Document is not focus”。

方法三

function copy(text) {
    focus()
    navigator.clipboard.writeText(text)
}
Run Code Online (Sandbox Code Playgroud)

这与方法 2 的行为相同。

方法四

function copy(text) {
    const ta = document.createElement('textarea')
    ta.value = text
    ta.select()
    document.execCommand('copy')
    ta.remove() …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

2
推荐指数
1
解决办法
753
查看次数