2017-02-13 70 views
-1

此代碼完全符合我的要求:將版權信息添加到複製的網絡文本的底部。但是,它會複製整篇文章。我想限制它說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); 
    }; 
}); 

JSFIDDLE DEMO

我不知道用substring或上面的代碼不使用write功能。

+0

200 _characters_應該很容易:'.substring(0,200)' –

+0

的可能的複製[?只保留前n個字符在字符串](http://stackoverflow.com/questions/7708819/keep-only-first -n-characters-in-a-string) –

+0

我在哪裏添加這個'substring'?我看到了這個例子,但它使用了寫入功能,這裏沒有寫入功能。我對JS不太擅長。 –

回答

1

我在代碼中添加了一些額外的說明。首先,從複製的文本中刪除前200個字符(如果超過200個字符),其次,如果有超過50個字,則刪除前50個字。嘗試更改wordsLimitcharactersLimit變量的值以找出效果。

$(document).ready(function() { 
 
    document.body.oncopy = function() { 
 
    \t var wordsLimit = 50; 
 
     var charactersLimit = 200; 
 
     var body_element = document.getElementsByTagName('body')[0]; 
 
     var selection; 
 
     selection = window.getSelection(); 
 
     var limitChar = selection.toString().slice(0,charactersLimit); 
 
\t \t var limitWord = limitChar; 
 
     var iter = 0; 
 
     var end = null; 
 
     limitWord.replace(/\s/g,function(a,b){ 
 
      iter++; 
 
      if(iter===wordsLimit) limitWord = limitWord.slice(0,b); 
 
     }); 
 
     
 
     var pagelink = "<br />Read more at: <a href='" + document.location.href + "'>" + document.location.href + "</a><br />"; 
 
     var copytext = limitWord + pagelink; 
 
     var newdiv = document.createElement('div'); 
 
     body_element.appendChild(newdiv); 
 
     newdiv.innerHTML = copytext; 
 
     selection.selectAllChildren(newdiv); 
 
     window.setTimeout(function() { 
 
      body_element.removeChild(newdiv); 
 
     }, 0); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam hendrerit orci vel urna tincidunt, id aliquet leo dapibus. Nunc sodales arcu auctor, aliquam augue ut, blandit lorem. Ut eleifend dui in interdum fringilla. Etiam eleifend, sem et varius ornare, massa tellus tincidunt metus, ac ultricies ex diam ac arcu. Pellentesque at scelerisque ex. Quisque lobortis lectus sit amet porttitor dapibus. Nunc eget sagittis enim. Aenean mollis rutrum ante. Etiam lacinia aliquam pellentesque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam hendrerit orci vel urna tincidunt, id aliquet leo dapibus. Nunc sodales arcu auctor, aliquam augue ut, blandit lorem. Ut eleifend dui in interdum fringilla. Etiam eleifend, sem et varius ornare, massa tellus tincidunt metus, ac ultricies ex diam ac arcu. Pellentesque at scelerisque ex. Quisque lobortis lectus sit amet porttitor dapibus. Nunc eget sagittis enim. Aenean mollis rutrum ante. Etiam lacinia aliquam pellentesque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> 
 
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam hendrerit orci vel urna tincidunt, id aliquet leo dapibus. Nunc sodales arcu auctor, aliquam augue ut, blandit lorem. Ut eleifend dui in interdum fringilla. Etiam eleifend, sem et varius ornare, massa tellus tincidunt metus, ac ultricies ex diam ac arcu. Pellentesque at scelerisque ex. Quisque lobortis lectus sit amet porttitor dapibus. Nunc eget sagittis enim. Aenean mollis rutrum ante. Etiam lacinia aliquam pellentesque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam hendrerit orci vel urna tincidunt, id aliquet leo dapibus. Nunc sodales arcu auctor, aliquam augue ut, blandit lorem. Ut eleifend dui in interdum fringilla. Etiam eleifend, sem et varius ornare, massa tellus tincidunt metus, ac ultricies ex diam ac arcu. Pellentesque at scelerisque ex. Quisque lobortis lectus sit amet porttitor dapibus. Nunc eget sagittis enim. Aenean mollis rutrum ante. Etiam lacinia aliquam pellentesque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> 
 
<p>This is the last line</p>

+0

非常感謝。順便說一句,如果我只需要截斷單詞而不是字符,該怎麼辦?如果字truncate就位時如何使字符截斷可選? –

+0

從'selection.toString()。slice(0,charactersLimit)'中移除'.slice(0,charactersLimit)';'使得它看起來像'var limitChar = selection.toString();' –