【问题标题】:devtools console: copy is not a function while on youtubedevtools 控制台:在 youtube 上复制不是功能
【发布时间】:2020-09-24 12:28:14
【问题描述】:

我知道我可以使用控制台上的copy() 函数将内容添加到剪贴板。

当我在任何其他页面上时copy('test') 工作。

当我在 youtube 上时,我得到:

未捕获的类型错误:复制不是函数

我该如何解决这个问题。例如。有没有办法防止网站使用 devtools 覆盖特定功能?

奇怪的是在 Firefox 上 copy() 在 youtube 上工作,所以这可能是 chrome 错误吗?

【问题讨论】:

  • 在控制台运行copy,你会看到它是一个id为copy的DOM元素。删除此元素后,您可以使用内置 API。
  • @wOxxOm 感谢您的反馈。确实document.querySelector('#copy').remove() 有效。我想知道为什么会这样? id 应该作为变量访问吗?我尝试通过其名称访问不同的 id,但我不能。为什么这在 Firefox 上不起作用?
  • 1) 见 Do DOM tree elements with ids become global variables?,2) 不知道,但众所周知,谷歌会为非 Chrome 浏览器提供不同的网站。
  • 有没有办法恢复copy

标签: javascript google-chrome-devtools clipboard google-chrome-console


【解决方案1】:

问题是该页面上有一个 id="copy" 的元素。如果你在控制台中输入copy,你应该会得到一个像这样打印出来的元素:

$ copy
<g id="copy"></g>

因此,您必须在使用 copy 函数之前删除该元素:

document.querySelector('#copy').remove();

再次在控制台中运行它应该会显示它是一个函数:

$ copy
ƒ copy() { [native code] }

然后像往常一样使用copy(),例如copy(myVariable)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2021-05-10
    • 2013-05-23
    • 2022-10-25
    相关资源
    最近更新 更多