копирование в Буфер при клике на картинку
Доброго времени суток! только начал изучать JS, поэтому прошу не кидать камнями за ,возможно, простой вопрос:
Есть html страничка с множеством картинок. нужно при клике на одной из них записать выражение в буфер обмена, соответсвенно, разные выражения для разных картинок. Сразу скажу - нужно, что бы работало под мозиллой.... http://webchicanery.com/code/clipbjavascript.zip вот скрипт сценария, который возможно можно доработать. |
Немного не ясно выразился. По событию онклик на картинке должен срабатывать скрипт, который запишет в буфер обмена комментарий к картинке (alt.) такое вообще реально сделать?
|
Это реально сделать, но не так просто, как может показаться.
Вот статейка на эту тему. Можете попробовать использовать код из этой статьи:
function copyToClipboard(content) {
if (window.clipboardData && window.clipboardData.setData) {
window.clipboardData.setData("Text", content);
return true;
}
else {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
return false;
}
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService();
if (clipboard) {
clipboard = clipboard.QueryInterface(Components.interfaces.nsIClipboard);
}
var transferable = Components.classes["@mozilla.org/widget/transferable;1"].createInstance();
if (transferable) {
transferable = transferable.QueryInterface(Components.interfaces.nsITransferable);
}
if (clipboard && transferable) {
var textObj = new Object();
var textObj = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
if (textObj) {
textObj.data = content;
transferable.setTransferData("text/unicode", textObj, content.length*2);
var clipid=Components.interfaces.nsIClipboard;
clipboard.setData(transferable,null,clipid.kGlobalClipboard);
return true;
}
}
return false;
}
}
Вам останется только повесить, либо через DOM, либо прямо в теге, выполнение этой функции с параметром соответствующего alt свойства. Например вот так: <img src="..." alt="sometext" onClick="copyToClipboard(this.alt)" /> |
в фоксе не работает
в фоксе не работает
|
Здравствуйте!
Кто-нибудь может подсказать, почему не работает такой код:
<SCRIPT TYPE="text/javascript">
<!--
function ClipBoard(text)
{
text.createTextRange().execCommand("Copy");
}
//-->
</script>
<a title="Скопировать текст в буфер обмена"
href="javascript:ClipBoard('Этот текст надо скопировать')">Этот текст надо скопировать</a>
В IE при клике ничего не происходит, и в строке состояния броузера сообщение об ошибке. |
В ИЕ для копирования чего либо нужно использовать объект
событие.dataTransfer.setData(формат, данные) Помещает в буфер сохранения строку данные в заданном формате, который может иметь значение "Text" или "URL". Возвращает true в случае успеха и false в противном случае. Насколько мне извесно, другие браузеры не позволяют такое делать. |
http://javascript.ru/unsorted/why_href_js_is_bad
Цитата:
|
Цитата:
Брось ты это все, Glutton, Оптимизировать свой сайт под IE - Лишняя морока! Нормальные люди пользуются Оперой и лисичкой (файрбуг - тоже ничего :)) Например, мой сайт (https://corsair.asmer.com.ua) В ИЕ Вообще не будет работать (Я не прикладивал никаких усилий для оптимизации своего сайта под ИЕ), и меня это не сильно волнует |
| Часовой пояс GMT +3, время: 11:59. |