当光标位于 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 语句的情况下测试支持?
另外,我不想手动编辑文本区域的值,因为这样做会破坏编辑历史记录。
我不是在询问将语法与文件扩展名相关联,而是在询问将文件扩展名与语法相关联。也就是说,在创建新文件后设置保存文件对话框中建议的文件扩展名,然后设置语法,然后单击“保存”。
您可以在保存对话框中更改扩展名,但最好不要每次都这样做。
我想要一个与<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不起作用。它匹配两者。
问只是因为我认为这是不可能的。
我想我会在放弃之前给社区一个机会。
编辑- 人们一直将其标记为重复,所以让我明确一下:如果当前的最佳答案是正确的,那么您所引用问题的答案具有相同的根本原因,但这并不使它成为相同的问题。这两个问题的答案完全有可能不同——或者如果不是,那么“为什么”只是这个问题的答案,而不是那个问题的答案。
我想点击我的 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)