diff options
Diffstat (limited to 'js/clipboard.js')
| -rw-r--r-- | js/clipboard.js | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/js/clipboard.js b/js/clipboard.js index da326ff..66c0c67 100644 --- a/js/clipboard.js +++ b/js/clipboard.js @@ -9,10 +9,12 @@ var clipboard = (function () { import_ascii.addEventListener("change", exports.setFormat("ascii")) import_irssi.addEventListener("change", exports.setFormat("irssi")) import_mirc.addEventListener("change", exports.setFormat("mirc")) - import_button.addEventListener("click", exports.import_data) + import_button.addEventListener("click", exports.import_text) + import_html.addEventListener("click", exports.import_html) export_button.addEventListener("click", exports.export_data) import_textarea.addEventListener("focus", exports.focus) import_textarea.addEventListener("blur", exports.blur) + import_textarea.addEventListener('paste', exports.paste) import_irssi.setAttribute("checked", true) }, setFormat: function (name) { @@ -35,18 +37,59 @@ var clipboard = (function () { import_mode: function () { focus() clipboard.importing = true - import_button.style.display = "inline-block" + import_buttons.style.display = "inline-block" export_button.style.display = format_group.style.display = "none" import_textarea.value = "" }, export_mode: function () { focus() clipboard.importing = false - import_button.style.display = "none" + import_buttons.style.display = "none" export_button.style.display = format_group.style.display = "inline-block" clipboard.export_data() }, - import_data: function () { + + paste: function (e) { + toArray(e.clipboardData.items).forEach(function(item,i){ + console.log(item.kind, item.type) + if (item.kind == 'file' && item.type.match('image/')) { + var blob = item.getAsFile(); + window.URL = window.URL || window.webkitURL; + var blobUrl = window.URL.createObjectURL(blob); + + var img = document.createElement('img'); + img.onerror = function(){ + // error! + console.log("error! bad image!") + } + img.onload = function(){ + // load! + //document.body.appendChild(img); + // handle importing an image? + console.log("image import not supported") + } + img.src = blobUrl; + } + // this can be text/plain or text/html.. + else if (item.kind == 'string' && item.type.match('text/plain') && e.clipboardData.items.length > 1) { + return + } + else if (item.kind == 'string') { + item.getAsString(function(text){ + import_textarea.value = text + }) + } + else { + console.error("unknown type!", item.type) + } + }) + + }, + + import_html: function () { + }, + + import_text: function () { var data = import_textarea.value lines = data.split("\n") var width = lines.reduce(function(a,b){ return Math.max(a, b.length) }) |
