1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- function CopyToClipboard(input) {
- var textToClipboard = input;
- var success = true;
- if (window.clipboardData) { // Internet Explorer
- window.clipboardData.setData("Text", textToClipboard);
- } else {
- // create a temporary element for the execCommand method
- var forExecElement = CreateElementForExecCommand(textToClipboard);
- /* Select the contents of the element
- (the execCommand for 'copy' method works on the selection) */
- SelectContent(forExecElement);
- var supported = true;
- // UniversalXPConnect privilege is required for clipboard access in Firefox
- try {
- if (window.netscape && netscape.security) {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- }
- // Copy the selected content to the clipboard
- // Works in Firefox and in Safari before version 5
- success = document.execCommand("copy", false, null);
- } catch (e) {
- success = false;
- }
- // remove the temporary element
- document.body.removeChild(forExecElement);
- }
- if (success) {
- alert("复制成功!");
- } else {
- alert("复制失败,你要复制的内容为:"+textToClipboard);
- }
- }
- function CreateElementForExecCommand(textToClipboard) {
- var forExecElement = document.createElement("div");
- // place outside the visible area
- forExecElement.style.position = "absolute";
- forExecElement.style.left = "-10000px";
- forExecElement.style.top = "-10000px";
- // write the necessary text into the element and append to the document
- forExecElement.textContent = textToClipboard;
- document.body.appendChild(forExecElement);
- // the contentEditable mode is necessary for the execCommand method in Firefox
- forExecElement.contentEditable = true;
- return forExecElement;
- }
- function SelectContent(element) {
- // first create a range
- var rangeToSelect = document.createRange();
- rangeToSelect.selectNodeContents(element);
- // select the contents
- var selection = window.getSelection();
- selection.removeAllRanges();
- selection.addRange(rangeToSelect);
- }
|