在 IE 執行剪貼簿功能

原文網址




如果你想讓使用者按下一個按鈕就把整段文字的內容填入剪貼簿,那麼你或許會想要使用如下的 JavaScript 指令:

CopiedTxt = document.getElementById('myText").createRange();
CopiedTxt.execCommand(”Copy”);

很不幸的,在 IE 瀏覽器中可能不能執行這段指令,它會指出 createRange 這道指令「物件不支援此屬性或方法」。事實上,你光從 Visual Studio 2008 中 JavaScript 的 Intellisense 下面已經找不到物件的 select()、createRange() 或 execCommand() 等方法了,這表示上述方法都並不受到支援。

對於 IE 瀏覽器,你應該使用 JavaScript 的 window.clipboardData.setData() 指令,如下例:

 

<script type="text/javascript" language="javascript">
        function CopyToClipboard() {
            var ite = document.getElementById('myGridView’);
            ite.focus();
            window.clipboardData.setData('Text', ite.innerHTML);
        }
</script>
...
<input name="btnCopyToClipboard" type="button" value="複製" onclick="CopyToClipboard();" />
<div id="myGridView">
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" ShowHeader="true"
        ...
</div>


在這個範例中,當使用者按下「複製」按鈕後,程式會把 GridView 控制項內容完整的複製到剪貼簿裡面去,以方便他/她再貼到 Word 或 Excel 裡。

那麼,如果你是想把剪貼簿裡的資料取出來,那麼可以使用 JavaScript 的 window.clipboardData.getData('Text') 指令。

0 意見