【发布时间】:2020-04-06 21:35:19
【问题描述】:
我不明白为什么 trim() 方法在这里对我不起作用:
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
selection = selection.trim(); // *** HERE IT IS! ***
var pagelink = "<br /><br /> Read more at: <a href='"+document.location.href+"'>"+document.location.href+"</a><br />Copyright © Name";
var copytext = "“" + selection + "”" + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function() {
body_element.removeChild(newdiv);
},0);
}
document.oncopy = addLink;
这不仅是它没有做它应该做的事情,而且我在这里使用该方法似乎有一个错误,因为它破坏了功能。
我从网上得到了这个复制归属的 javascript 函数。它本身工作得很好,但是我需要在复制选择的开头和结尾添加双引号,所以我需要添加一个trim() 方法以避免复制句子,例如:
“你好,我开头有空!”
我尝试将trim() 方法放在任何地方,但无论我做什么,它都会完全破坏该功能。我已经阅读并重新阅读了该方法的解释,但我看不出我做错了什么......我的意思是,它应该非常简单:你抓住一个字符串,将trim() 方法添加到它,然后'将创建一个没有任何前导或尾随空格的 new 字符串...但似乎我必须在这里遗漏一些东西,因为它只是破坏了函数... Javascript 和我永远无法成为老实说,好朋友;我一直觉得它令人沮丧,而且相当令人费解,因为它是对 PHP 的一种姿势,它不介意以一种或另一种方式放置! (当然,我是在谈论它在我的大脑中的感觉!我相信你们这里的所有专业人士都已经完全明白了,并且知道事情的去向和原因——以及为什么它们不能按照我使用的方式工作他们!)
无论如何,我也尝试过使用strip() 方法(虽然我不明白有什么区别),结果是一样的:它破坏了功能。
提前感谢您对此的任何意见!
【问题讨论】:
-
尝试读取控制台中的错误日志一次。
标签: javascript string trim strip