2017-02-13 2 views
-1

このコードはコピーしたWebテキストの下部に著作権情報を追加します。ただし、記事全体をコピーします。私はそれを50単語または200文字に制限したいと思います。私はどのように進めるべきですか?コピーされたWebテキストを切り捨てます

$(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_は簡単なはず: '(0、200)は'の –

+0

可能な重複[?文字列でのみ最初のn文字をキープ] .substring(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

ありがとうございました。 btw、文字だけでなく単語だけを切り捨てる必要がある場合はどうすればよいですか?切り詰められた単語が配置されている場合、文字切り捨てをオプションにするにはどうすればよいですか? –

+0

'.slice(0、charactersLimit)'を 'selection.toString()。slice(0、charactersLimit);'から削除すると 'var limitChar = selection.toString();'のようになります。 –

関連する問題