2017-08-10 9 views
5
<p id="p1"> 
...here is a lot of text (html) mixed with php... 
</p> 
<button onclick="copyToClipboard('#p1')">Copy to clipboard</button> 
------ 
JS 

function copyToClipboard(element) { 
    var $temp = $("<input>"); 
    $("body").append($temp); 
    $temp.val($(element).text()).select(); 
    document.execCommand("copy"); 
    $temp.remove(); 
} 

をクリップボードにコピー、結果はなく、太字、下線、行およびその他の書式のものなしでコピーされます。 デフォルトで表示されるので、どのようにコピーできますか?すべてのあなたのスタイルを想定し- ボタンIをクリックすると

+0

貼り付け先を記述すると助けになると思います。あなたがそれを望むように貼り付けないかもしれないhtmlのすべてをつかむならば。 – Brian

+0

gmailの本文に送信する。私はちょうど私がマウスでテキストを選択し、それをコピーするときと同じコピーを "クリックしてコピー"したい。 – FabianCannes

+0

これはどのように役立つか分かります。良い質問。 +1。 – Brian

答えて

2

がインラインあり、あなたは要素のHTMLではなくテキストを取得する必要があります。コメントに基づいて

function copyToClipboard(element) { 
    var $temp = $("<input>"); 
    $("body").append($temp); 
    $temp.val($(element).html()).select(); //Note the use of html() rather than text() 
    document.execCommand("copy"); 
    $temp.remove(); 
} 

編集:ような何か

Gmailのメッセージ本文またはあなたが実際に範囲としての要素を選択する必要がWord文書のようなものに書式をコピーします。 HTMLコンテンツをテキストエリアに挿入すると、生のテキストが実際にコピーされます。あなたは次のようなことをしたいと思っています:

+0

この方法では、すべてのhtmlソースコードがコピーされ、フォーマットされて表示されません。 – FabianCannes

+0

貼り付け先はどこですか? – GentlemanMax

+0

メッセージ本文をGmailに送信する。 – FabianCannes

0

てみhtmlの()テキストの代わりに()

$temp.val($(element).html()).select(); 
+0

もう少し説明していますか? –

1

function copyToClipboard(element) { 
 
    var $temp = $("<input>"); 
 
    $("body").append($temp); 
 
    $temp.val($(element).html()).select(); 
 
    document.execCommand("copy"); 
 
    $temp.remove(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="p1"> 
 
...here is a lot of <b>text</b> (html) mixed with php... 
 
</p> 
 
<button onclick="copyToClipboard('#p1')">Copy to clipboard</button>

関連する問題