2017-09-27 37 views
0

我試圖複製我的aspx網站上的一個元素的文本,並無法讓它工作。
我想單擊一個按鈕,並讓它將我的lblFileLink的文本複製到剪貼板。
聲明:此頁面使用母版
這裏是我的代碼:將元素文本複製到剪貼板aspx

<asp:Label ID="lblFileLink" runat="server"></asp:Label> 
    <asp:Button ID="btnCopy" runat="server" Text="Copy link" OnClientClick="copyToClipboard()" /> 
    <script> 
     function copyToClipboard() { 
      var element = document.getElementById("lblFileLink") 
      var $temp = $("<input>"); 
      $("body").append($temp); 
      $temp.val($(element).text()).select(); 
      document.execCommand("copy"); 
      $temp.remove(); 
      return false 
     } 
    </script> 

我希望它這樣做回發之前,所以用的javascrip/jQuery的

編輯:我注意到ID是網站本身的不同,所以現在我的代碼是這樣的:

<asp:Label ID="lblFileLink" runat="server"></asp:Label> 
    <asp:Button ID="btnCopy" runat="server" Text="Copy link" OnClientClick="copyToClipboard('#ContentPlaceHolder1_lblFileLink')" /> 
    <script> 
     function copyToClipboard(element) { 
      var $temp = $("<input>"); 
      $("body").append($temp); 
      $temp.val($(element).text()).select(); 
      document.execCommand("copy"); 
      $temp.remove(); 
     } 
    </script> 

回答

0

,而不是使用這樣的:

<asp:Button ID="btnCopy" runat="server" Text="Copy link" 
OnClientClick="copyToClipboard()" /> 

因爲當使用asp.net控制器運行在服務器它回發到服務器。

使用按鈕html標記。

<button id="btnCopy" click="copyToClipboard()">Copy link</button> 

,或者你可以這樣做:

<asp:Button ID="btnCopy" runat="server" Text="Copy link" 
    OnClientClick="copyToClipboard(); return false;" /> 
+0

謝謝,但我發現了另一個解決方案,我更喜歡,我實現在第三個選項中使用的雙重的OnClientClick事件。 – MonsterGamer666