簡體   English   中英

復制粘貼在JavaScript中

[英]Copy Paste In JavaScript

這是一個古老的問題,但我仍然遇到麻煩。 你看,我正在嘗試將一些Excel數據粘貼到文本區域,但是這些愚蠢的瀏覽器在執行此操作時會長時間凍結,因為上帝知道他們做了什么“聰明”的解析。 我無法擺脫它(文件上傳是不可能的,我的老板希望我在文本區域中粘貼Excel中的行)。

好消息是粘貼在標准文本框WORKS中。 但我不能強迫他們粘貼那里。 所以我試圖捕獲文本區域中的粘貼事件,然后將文本扔到文本框中。 不幸的是,我在粘貼部分停了下來。 我無法通過JS將文本粘貼到簡單的文本框中。

所以我的問題是:如何粘貼文本,如何通過JS調用它? 有一些解決方案只能在IE中運行,當然不是很好:) - )。

簡單。

 var isIe = (navigator.userAgent.toLowerCase().indexOf("msie") != -1 || navigator.userAgent.toLowerCase().indexOf("trident") != -1); document.getElementById('textinput').addEventListener('paste', function(e) { var text; if (isIe) { text = window.clipboardData.getData('Text') } else { text = e.clipboardData.getData('text/plain'); } // Do whatever you want with the text console.log(text); //If you don't want the text pasted in the textarea e.preventDefault(); }); 
 <textarea id="textinput"></textarea> 

如果你願意,你甚至可以擺脫textarea並更直接地做到這一點。 我寫了一篇技術博客文章,解釋了我們如何在Lucidchart(我工作的地方)進行復制和粘貼。

對不起,沒聽清楚這個主意。 你不能附加到thextarea的onpaste事件(至少我知道IE有這樣的事件),然后簡單地將textarea的值設置為粘貼的值嗎?

    pastedContent = window.clipboardData.getData("Text");
    document.getElementById("yourtextarea").value = pastedContent;

編輯:好吧,似乎這只適用於IE和更新版本的FF ,但它不是一個跨瀏覽器的解決方案。

我無法通過JS將文本粘貼到簡單的文本框中

當你說“簡單文本框”時,你的意思是<input type="text"> 如果是這樣,那么我認為將其value屬性設置為您從<textarea>捕獲的<textarea>應該有效。

在Firefox或Mozilla中啟用javascript復制到剪貼板: http//www.febooti.com/support/website-help/website-javascript-copy-clipboard.html

嘗試將CodeMirror作為備用解決方案。 不檢查它與復制和粘貼巨大/ excel數據量,但也許這幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM