HTML とテキストをコピーする機能を追加したい Web アプリがあります... クリップボードにコピーします。
それで、私は Zeroclipboard をいじりましたが、それを機能させることができませんでした。そして、それがもはやサポート/開発されていないことを発見しました。そこで、Zclip と呼ばれるフォークを使用しました。
2 つの div を渡すことができる単一の関数が必要でした...「テキストのコピー」と表示されている div/ボタンがどこにあり、テキストをコピーするターゲット div がどこにあったか。「アラート」を挿入して、どこまで到達したかを知らせたり、デバッグを試みたりしました。アラートは、適切な div / テキストを zclip に渡していることを示唆していました。しかし、クリップボードをチェックするたびに、テキストがありませんでした!
FF、IE、およびChromeでこれを試してください。
そこで、これを理解しようと、ファイルを削除し始めました。ここに私が持っているテストページがあります:
<html>
<head>
<script src="js/vendor/jquery-1.10.2.min.js"></script>
<script src="http://www.steamdev.com/zclip/js/jquery.zclip.min.js"></script>
<script>
$(document).ready(function(){
var click_div_id = 'copy_results_table_to_CB';
var source_div_id = 'results';
alert("SetCopyableDiv was called for: click_div_id = " + click_div_id + " source_div_id to copy = " + source_div_id);
$('#'+ click_div_id).zclip({
path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
copy: function(){
var text = $('#' + source_div_id).text();
alert("Copy attempt made. Text = " + text);
console.log(text);
return text;
},
beforeCopy:function(){
alert("Copy was pressed!");
},
afterCopy:function(){
alert("Done with copy to clipboard!");
}
});
});
</script>
</head>
<body>
<div id="results" class="results">
<table class="data">
<tr>
<th>Entry Header 1</th>
<th>Entry Header 2</th>
<th>Entry Header 3</th>
<th>Entry Header 4</th>
</tr>
<tr>
<td>Entry First Line 1</td>
<td>Entry First Line 2</td>
<td>Entry First Line 3</td>
<td>Entry First Line 4</td>
</tr>
<tr>
<td>Entry Line 1</td>
<td>Entry Line 2</td>
<td>Entry Line 3</td>
<td>Entry Line 4</td>
</tr>
<tr>
<td>Entry Last Line 1</td>
<td>Entry Last Line 2</td>
<td>Entry Last Line 3</td>
<td>Entry Last Line 4</td>
</tr>
</table>
</div>
<button id="copy_results_table_to_CB">Copy to clipboard?</button>
</body>
私はこれのJSFiddleを持っています: http://jsfiddle.net/DR4296/V52eK/
奇妙なのは、「コピー」アラートがポップアップし、「コピー前」アラートが表示され、「コピー後」アラートが表示されないことです。これは、何かが本当に窒息していると思わせます。
何かご意見は?