【问题标题】:why window.getSelection() is not working? It won't take the text为什么 window.getSelection() 不工作?它不会占用文本
【发布时间】:2020-06-23 10:33:31
【问题描述】:

我正在尝试将我选择的屏幕中的文本粘贴到控制台中。

所以,我有一些示例文本,在我的 js 文件中有:

let text = window.getSelection().toString()
console.log(text)

这是文件的唯一内容,因为这是一个测试。但它不会起作用。 如果我打印带有示例的控制台日志,例如console.log('whatever'),它会在控制台中打印“whatever”。

为什么不工作?

【问题讨论】:

  • 在您的脚本运行时,页面上没有选择。
  • 我希望有人能告诉我为什么投反对票,以便我改进问题。我不认为我错过了任何东西,或者它的配方很糟糕。谢谢。
  • 我没有对这个问题投票,但是“it won't work”不是问题描述。你应该在文本中说明你希望你的代码做什么,以及它做什么,不要只在标题中隐藏解释。
  • 我明白了。你是对的。感谢您的澄清! :)

标签: javascript window console.log getselection


【解决方案1】:

如果这是文件的唯一内容,那么它将在解析 <script> 元素后立即运行。

此时,用户几乎肯定不会选择任何内容,因此选择为空,您将得到一个空字符串。

将代码放入函数中并使用事件处理程序,以便在有选择之前它不会运行。

function handler(event) {
  let text = window.getSelection().toString()
  console.log(text)
}

addEventListener("mouseup", handler);
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

【讨论】:

  • 非常清楚地解释了为什么它不起作用。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2021-07-27
  • 2017-10-17
  • 2021-12-30
  • 2013-08-28
  • 1970-01-01
相关资源
最近更新 更多