小编twh*_*whb的帖子

Firefox 可以在文本区域中使用 document.execCommand 吗?

当光标位于 contenteditable 中时div,Chrome 和 Firefox 都可以模拟输入“sometext”,如下所示:

document.execCommand('insertText', false, 'sometext');
Run Code Online (Sandbox Code Playgroud)

在 Chrome 中,当您处于 a 状态时,这textarea也适用。在 Firefox 中,我收到错误“NS_ERROR_FAILURE:”。

这是一个演示的小提琴:http://jsfiddle.net/ukx37/。在 Chrome 中,按 Enter 键并输入“ENTER\n”。在 Firefox 中,输入“\n”并收到错误 NS_ERROR_FAILURE。

有谁知道是否有办法在 Firefox 中实现此功能?或者,如果没有,是否有某种方法可以在没有 try-catch 语句的情况下测试支持?

另外,我不想手动编辑文本区域的值,因为这样做会破坏编辑历史记录。

javascript editor

5
推荐指数
1
解决办法
1898
查看次数

如何在 Sublime Text 3 中设置语法的默认文件扩展名?

我不是在询问将语法与文件扩展名相关联,而是在询问将文件扩展名与语法相关联。也就是说,在创建新文件后设置保存文件对话框中建议的文件扩展名,然后设置语法,然后单击“保存”。

您可以在保存对话框中更改扩展名,但最好不要每次都这样做。

sublimetext sublimetext3

5
推荐指数
1
解决办法
3925
查看次数

是否可以选择前面没有文本的元素?

我想要一个与<code>in匹配的 CSS 选择器:

<p><code>foo</code> bar</p>
Run Code Online (Sandbox Code Playgroud)

但不是<code>在:

<p>foo <code>bar</code></p> 
Run Code Online (Sandbox Code Playgroud)

code:first-child不起作用。它匹配两者。

问只是因为我认为这是不可能的。

我想我会在放弃之前给社区一个机会。


编辑- 人们一直将其标记为重复,所以让我明确一下:如果当前的最佳答案是正确的,那么您所引用问题的答案具有相同的根本原因,但这并不使它成为相同的问题。这两个问题的答案完全有可能不同——或者如果不是,那么“为什么”只是这个问题的答案,而不是那个问题的答案。

html css css-selectors

5
推荐指数
1
解决办法
404
查看次数

单击 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
查看次数