В настоящее время существует все больше и больше типов браузеров, таких как IE, Firefox, Chrome, Safari и т. Д., Поэтому не так легко реализовать небольшую функцию копирования контента в буфер обмена с помощью JS.
В эпоху Flash 9 было решение, чтобы убить все браузеры JS Copy Content в буфер обмена :
Это решение является одним из самых популярных методов: знаменитое решение для копирования буфера обмена использует буфер обмена в качестве моста для копирования контента в буфер обмена.
Принцип: создать скрытый файл флэш -файла и в то же время назначить значение «Буфборги = ..» на флэш -переменную. Благодаря этому заданию скопированный контент будет размещен в буфере обмена. Этот метод совместим с IE, Firefox, Opera, Chrome и Safari, и является действительно «универсальным» решением. Скорость установки вспышки браузера очень высока, что является почти идеальным решением.
Кода -копия выглядит следующим образом:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<голова>
<Title> Web Developer- www.admin10000.com </title>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javascript">
var boopboardswfdata;
var setCopy_getText = function () {
буферизаторсфдата = document.getElementById ('test_text'). Value;
// оповещение (буферборниксвфдата);
window.document.clipboardswf.setVariable ('str', boobboardswfdata);
}
var floatwin = function () {
Alert ('копия успешно!');
//document.getElementByid('clipinner').style.display = 'none';
}
</script>
</head>
<тело>
<textarea id = "test_text" row = "15" cols = "100"> текстовое содержимое ..... </textarea>
<div id = "bulbboard_content">
<div> <span id = "clipinner"> скопировать код в буфер обмена
<embed name = "buildboardswf" id = "clipboardswf" onmouseover = "setcopy_gettext ()" devicefont = "false" src = "./_blboard.swf" menu = "false" AlliveCcess = "samedomain" swliveconnect = "true" wmode = "tressparent" type = "x-shockwave-flash =" true "wmode =" trpsparent "=" x-shockwave-flash = "true" wmode = "trpsparent" = "x-shockwave-flash =" true "wmode ="
</span>
</div>
</div>
</body>
</html>
Адрес загрузки буферу обмена.SWF: http://www.jeffothy.com/weblog/uploads/clipboard.php
Но в эпоху Flash 10 вышеупомянутый метод больше невозможен.
Поскольку Flash10 предусматривает, что только реальные операции на SWF (например, щелчок мыши) могут получить доступ к буферу обмена, в то время как приведенный выше метод использует только скрытый файл SWF и управляет буфером обмена Flash через JavaScript. Пользователь не выполняет реальные операции в файле SWF, поэтому этот метод недействителен.
Так как решить эту проблему «реальной операции»? Вы можете использовать библиотеку JavaScript: нулевой буфер обмена. Эта библиотека JS может поддерживать копирование Flash 10 в буфер обмена. Принцип этого метода состоит в том, чтобы перезаписать элемент DOM, такой как кнопка или DIV, на прозрачной вспышке (не виден для пользователя). При нажатии на этот DOM фактический щелчок Flash - доступ к буферу обмена Flash.
Вот несколько примеров отладки:
Кода -копия выглядит следующим образом:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<голова>
<Title> Тест на буфер обмена ноль </title>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javascript" src = "zeroclipboard.js"> </script>
<script type = "text/javascript">
var clip = null;
Функция $ (id) {return document.getElementByid (id); }
function init () {
clip = new zeroclipboard.client ();
clip.sethandcursor (true);
clip.addeventlistener ('mouseover', function (client) {
// Обновление текста на мыши над
clip.settext ($ ('fe_text'). value);
});
clip.addeventlistener ('withle', function (client, text) {
// debugstr ("Скопированный текст в буфер обмена:" + text);
оповещение («Этот адрес был скопирован, вы можете вставить его с Ctrl+V»);
});
clip.glue ('clip_button', 'clip_container');
}
</script>
</head>
<body onload = "init ()">
<input id = "fe_text" cols = "50" rows = "5" value = "Копировать текст содержимого">
<span id = "clip_container"> <span id = "clip_button"> <strong> copy </strong> </span> </span>
</body>
</html>
Нажмите, чтобы загрузить эту библиотеку: //www.vevb.com/jiaoben/24961.html
Пожалуйста, загрузите на сайт во время отладки. Если вы откроете Flash прямо локально, будет ошибка, и разрешения не будет. Свойство MoviePath в файле zeroclipboard.js представляет собой адрес Falsh, который является адресом адреса, где Zeroclipboard.swf хранится в каталоге.
Это решение для копирования контента в буфер обмена может поддерживать браузеры: Firefox/IE/Opera/Chmere/Safari All Browsers!