Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 截断复制的web文本_Javascript_Jquery - Fatal编程技术网

Javascript 截断复制的web文本

Javascript 截断复制的web文本,javascript,jquery,Javascript,Jquery,这段代码正是我想要的:将版权信息添加到复制的web文本的底部。然而,它复制了整篇文章。我想限制它说50个字或200个字符。我应该如何进行 $(document).ready(function () { document.body.oncopy = function () { var body_element = document.getElementsByTagName('body')[0]; var selection; selectio

这段代码正是我想要的:将版权信息添加到复制的web文本的底部。然而,它复制了整篇文章。我想限制它说50个字或200个字符。我应该如何进行

$(document).ready(function () {
    document.body.oncopy = function () {
        var body_element = document.getElementsByTagName('body')[0];
        var selection;
        selection = window.getSelection();
        var pagelink = "<br />Read more at: <a href='" + document.location.href + "'>" + document.location.href + "</a><br />";
        var copytext = selection + pagelink;
        var newdiv = document.createElement('div');
        body_element.appendChild(newdiv);
        newdiv.innerHTML = copytext;
        selection.selectAllChildren(newdiv);
        window.setTimeout(function () {
            body_element.removeChild(newdiv);
        }, 0);
    };
});
$(文档).ready(函数(){
document.body.oncopy=函数(){
var body_element=document.getElementsByTagName('body')[0];
var选择;
selection=window.getSelection();
var pagelink=“
更多信息请访问:
”; var copytext=选择+页面链接; var newdiv=document.createElement('div'); body_元素appendChild(newdiv); newdiv.innerHTML=copytext; 选择。选择所有子项(newdiv); setTimeout(函数(){ 主体元素移除child(newdiv); }, 0); }; });


我不知道如何使用
子字符串
,或者上面的代码没有使用
写入
功能

我在您的代码中添加了一些额外的指令。首先,从复制的文本中剪切前200个字符(如果超过200个字符),然后,如果超过50个单词,则剪切前50个单词。尝试更改
wordsLimit
charactersLimit
变量的值以了解效果

$(文档).ready(函数(){
document.body.oncopy=函数(){
var wordsLimit=50;
var charactersLimit=200;
var body_element=document.getElementsByTagName('body')[0];
var选择;
selection=window.getSelection();
var limitChar=selection.toString().slice(0,charactersLimit);
var limitWord=limitChar;
var-iter=0;
var-end=null;
limitWord.replace(/\s/g,函数(a,b){
iter++;
if(iter===wordsLimit)limitWord=limitWord.slice(0,b);
});
var pagelink=“
更多信息请访问:
”; var copytext=limitWord+pagelink; var newdiv=document.createElement('div'); body_元素appendChild(newdiv); newdiv.innerHTML=copytext; 选择。选择所有子项(newdiv); setTimeout(函数(){ 主体元素移除child(newdiv); }, 0); }; });

Lorem ipsum dolor sit amet,是一位杰出的献身者。Etiam hendrerit orci vel urna tincidunt我叫leo dapibus。Nunc sodales arcu拍卖行、aliquam augue ut、blandit lorem。我们在弗林利亚的一次酒后驾车。埃蒂亚姆·埃利芬德(Etiam eleifend)、塞姆(sem)和奥纳雷(varius ornare)、马萨(massa tellus tincidunt metus)、艾蒂亚姆·埃利芬德(ac-Ultrices ex-diam ac arcu)。佩伦茨克在权杖前,奎斯克·洛博蒂斯·莱克图斯坐在阿梅特·波特托·达皮布斯(amet porttitor dapibus)的座位上。萨吉特教堂。阿尼安·莫利斯·鲁特鲁姆·安特。埃蒂亚姆·拉西尼亚·阿利奎姆·佩伦茨克。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Lorem ipsum dolor sit amet,是一位杰出的献身者。Etiam hendrerit orci vel urna tincidunt我叫leo dapibus。Nunc sodales arcu拍卖行、aliquam augue ut、blandit lorem。我们在弗林利亚的一次酒后驾车。埃蒂亚姆·埃利芬德(Etiam eleifend)、塞姆(sem)和奥纳雷(varius ornare)、马萨(massa tellus tincidunt metus)、艾蒂亚姆·埃利芬德(ac-Ultrices ex-diam ac arcu)。佩伦茨克在权杖前,奎斯克·洛博蒂斯·莱克图斯坐在阿梅特·波特托·达皮布斯(amet porttitor dapibus)的座位上。萨吉特教堂。阿尼安·莫利斯·鲁特鲁姆·安特。埃蒂亚姆·拉西尼亚·阿利奎姆·佩伦茨克。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯

Lorem ipsum dolor sit amet,是一位杰出的献身者。Etiam hendrerit orci vel urna tincidunt我叫leo dapibus。Nunc sodales arcu拍卖行、aliquam augue ut、blandit lorem。我们在弗林利亚的一次酒后驾车。埃蒂亚姆·埃利芬德(Etiam eleifend)、塞姆(sem)和奥纳雷(varius ornare)、马萨(massa tellus tincidunt metus)、艾蒂亚姆·埃利芬德(ac-Ultrices ex-diam ac arcu)。佩伦茨克在权杖前,奎斯克·洛博蒂斯·莱克图斯坐在阿梅特·波特托·达皮布斯(amet porttitor dapibus)的座位上。萨吉特教堂。阿尼安·莫利斯·鲁特鲁姆·安特。埃蒂亚姆·拉西尼亚·阿利奎姆·佩伦茨克。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Lorem ipsum dolor sit amet,是一位杰出的献身者。Etiam hendrerit orci vel urna tincidunt我叫leo dapibus。Nunc sodales arcu拍卖行、aliquam augue ut、blandit lorem。我们在弗林利亚的一次酒后驾车。埃蒂亚姆·埃利芬德(Etiam eleifend)、塞姆(sem)和奥纳雷(varius ornare)、马萨(massa tellus tincidunt metus)、艾蒂亚姆·埃利芬德(ac-Ultrices ex-diam ac arcu)。佩伦茨克在权杖前,奎斯克·洛博蒂斯·莱克图斯坐在阿梅特·波特托·达皮布斯(amet porttitor dapibus)的座位上。萨吉特教堂。阿尼安·莫利斯·鲁特鲁姆·安特。埃蒂亚姆·拉西尼亚·阿利奎姆·佩伦茨克。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯


这是最后一行

200个字符应该很容易:
.substring(0200)
我在哪里添加这个
子字符串
?我看到了这个例子,但是它使用了write函数,这里没有write函数。我不太擅长JS。这是一种
string
(或
string
)的方法,因此您只需执行
copytext.substring(0200)
。链接副本对此有解释。请记住,子字符串将返回新字符串,而不是修改现有的字符串。也就是说,您应该这样做:
copytext=copytext.substring(0200)
非常感谢。顺便说一句,如果我必须只截断单词而不截断字符,该怎么办?当单词truncate已就位时,如何使字符truncate成为可选的?从
selection.toString().slice(0,charactersLimit)中删除
.slice(0,charactersLimit)
使其看起来像
var limitChar=selection.toString()