簡體   English   中英

“復制到剪貼板”的Javascript代碼在Internet Explorer 11中不起作用

[英]Javascript code for “Copy to Clipboard” won't work in Internet Explorer 11

我有一段Javascript代碼,當前調用特定的網頁,返回數據,然后將其復制到剪貼板。 它適用於Chrome,Safari和Firefox,但出於某種原因,復制功能在IE 11中無效。

返回的響應正文中包含正確的數據,但我似乎無法將該數據提供給剪貼板。 代碼需要是純Javascript,因為它是通過開發人員門戶使用的,具有一些限制/限制。 本質上, 我想避免使用jQuery導入jQuery庫/

function httpGet(theUrl)
{
   if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
       xmlhttp=new XMLHttpRequest();
   }
   else
   {// code for IE6, IE5
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.onreadystatechange=function()
   {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {
           function listener(e) {
             e.clipboardData.setData("text/html", xmlhttp.responseText);
             e.clipboardData.setData("text/plain", xmlhttp.responseText);
             e.preventDefault();
           }
           document.addEventListener("copy", listener);
           document.execCommand("copy");
           document.removeEventListener("copy", listener);

           return xmlhttp.responseText;
       }
   }
   xmlhttp.open("GET", theUrl, false );
   xmlhttp.send();
}

該函數正在“onclick”HTML事件中調用,該事件通常根據我的理解來觸發(考慮到正在調用“theUrl”頁面並返回數據)。 任何有關剪貼板未獲取數據的輸入都將非常受歡迎。 謝謝!

如果它不是IE11你可以使用ClipboardAPI ,那么我只會使用:

function copy() {
  const copyText = document.querySelector("#input");
  copyText.select();
  document.execCommand("copy");
}

document.querySelector("#copy").addEventListener("click", copy);

希望能幫助到你!

在IE瀏覽器中,您可以使用以下代碼:

<script>
    function Copy() {
        if (window.clipboardData) {
            window.clipboardData.clearData();
            window.clipboardData.setData("Text", document.getElementById('txtacpy').value);
        }
        else {
            alert("not support window.cliboardData")
        }
    }
    function paste() {
        if (window.clipboardData) {
            document.getElementById('txtapaste').value = window.clipboardData.getData("Text");
        }
    }
</script>
<input type="button" id="btncopy" value="Copy" onclick="Copy()" />
<br />
<input type="text" name="txtacpy" id="txtacpy" />
<br />
<input type="button" id="btncopy" value="Paste" onclick="paste();" />
<br />
<input type="text" name="txtapaste" id="txtapaste" />

結果是這樣的

注意:以上代碼僅適用於IE瀏覽器,因此,您可能需要先檢查瀏覽器是否為IE瀏覽器,請檢查此線程此線程

暫無
暫無

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

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