单击时,Cipboard正在复制错误的文本

时间:2015-03-20 16:56:44

标签: javascript internet-explorer

当我第一次点击按钮复制时,我会变空白 我第二次点击按钮就得到了 并且在警报中我还在#emp_ext#。

之前得到了很多黑色空格

为什么会这样做?

我只想在IE9上工作。

<SCRIPT LANGUAGE="JavaScript">
function ClipBoard(areatocopy) 
{
alert (holdtext.innerText);
holdtext.innerText = areatocopy.innerText;
Copied = holdtext.createTextRange();
Copied.execCommand("Copy");
}
</SCRIPT> 
<TEXTAREA ID="holdtext" STYLE="display:none;">
</TEXTAREA>

<cfif #Left(getAllDetails.emp_ext, 4)# eq '4643'>
    <div class="buttons">#emp_ext#
        <BUTTON onClick="ClipBoard(z#emp_ext#);"> <img src="copy-icon.png" alt=""/>  </BUTTON> 
            <pre id="z#emp_ext#" style=" display:none">
            #emp_ext#
            </pre>
    </div>
<cfelseif #Left(getAllDetails.emp_ext, 1)# eq '5'>

    <div class="buttons">655-emp_ext#
        <BUTTON onClick="ClipBoard(z#emp_ext#);"> <img src="copy-icon.png" alt=""/>  </BUTTON> 
            <pre id="z#emp_ext#" style=" display:none">
                #emp_ext#
            </pre>
    </div>
<cfelse #Left(getAllDetails.emp_ext, 1)# eq '6'>

    <div class="buttons">#emp_ext#
        <BUTTON onClick="ClipBoard(z#emp_ext#);"> <img src="copy-icon.png" alt=""/>  </BUTTON> 
            <pre id="z#emp_ext#" style=" display:none">
                #emp_ext#
            </pre>
    </div>
</cfif>

1 个答案:

答案 0 :(得分:0)

在致电execCommand()之前暂时显示textarea:

function copyText(valueToCopy) 
{
    var holdtext = document.getElementById("holdtext");
    holdtext.innerText = valueToCopy;
    var range = holdtext.createTextRange();
    holdtext.style.display = "block";
    range.execCommand("Copy");
    holdtext.style.display = "none";
}
<textarea id="holdtext" style="display:none;"></textarea>

<div class="buttons">
    <button onclick="copyText('abc');">&#x29c9; abc</button> 
    <button onclick="copyText('123');">&#x29c9; 123</button> 
</div>
<div>
    Paste here to test if it worked:
</div>
<div>
    <textarea></textarea>
</div>