Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Можно ли скопировать переменную в буфер обмена?


Автор: R.M. 20.7.2005, 18:27
Можно ли скопировать переменную в буфер обмена при помощи PHP?

Автор: PARROT 20.7.2005, 18:34
1. Куки
2. Сессии
Для чего?

Автор: -=Ustas=- 20.7.2005, 18:55
Неа, это задача клиентская, а не серверная.
Добавлено @ 18:57
JS попоробуй

Автор: Mal Hack 20.7.2005, 19:18
Где-то я уже тут писла давно...
есть два буфера. Клиентски и серверный.
Серверный - это буфер в который (при включенной буферизации) посылается весь гипертекст, до отсылки пользователю.
Вот серверный буфер можно юзать через PHP.

Автор: R.M. 21.7.2005, 00:07
Цитата(PARROT @ 20.7.2005, 19:34)
Для чего?


Хочу чтобы когда пользователь заливал файл ссылка на этот файл сохранялась в буфер, чтобы её можно было вставить в нужное место


Цитата
JS попоробуй


JS для меня дремучий лес smile


Mal Hack

Т.е. мою задачу можно решить при помощи PHP?

Автор: Mal Hack 21.7.2005, 00:20
Цитата
Т.е. мою задачу можно решить при помощи PHP?

Это зависит от того, что ты сделать хочешь. Пока что ты толком ничего не объяснил.

Автор: sergejzr 21.7.2005, 00:41
Куксикус, пиши в тэге body:

Код

....
<body onload="window.clipboardData.setData('text', 'http://www.твоя_ссылка.ru');"> 
....


Это яваскрипт и только в ИЕ сработает. Для других браузеров всё немного сложнее, для Оперы например - невозможно совсем. Попользуй поиск по разделу javascript.
Удачи.

Автор: -=Ustas=- 21.7.2005, 00:43
Цитата(Mal @ 20.7.2005, 19:18)
Вот серверный буфер можно юзать через PHP.

Т.е.? Имеешь ввиду ob_start() ?

Автор: sergejzr 21.7.2005, 01:00
Вот тебе код для ИЕ и Мозиллы, спасибо Sardar smile
Только учти, что в мозилле будет выскакивать окошко с просьбой подтверждения разрешения копирования. ИЕ выполнит всё абсолютно безшумно smile


Код

<body onload="javascript:copytext('http://www.твоя_ссылка.ru')">

<script>
function copytext(text){

if((document.all)&&(!document.getSelection))//explorer
{
    window.clipboardData.setData('text', text);
}else
 if(window.Components) {
/*Опубликовано Sardar'ом на Винграде: http://vingrad.ru/@Sardar*/
   var clip, trans, str;
   //запросили права, если что у юзера всплывет окошко, по умолчанию окошко не всплывает
   netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
   //создали вбнутреннее представление строки
  (str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString)).data=text;
   //достаем интерфейс буфера обмена
  if(!(clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard))) return;
   //и интрфейс трансфера(проводника)
   if(!(trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable))) return;
   trans.addDataFlavor('text/unicode');
   //закидываем в трансфер текст в юникоде, третий параметр по логике не должен существовать;-)
   trans.setTransferData("text/unicode",str,text.length*2);
   //устанавливаем текст в буффер обмена
   clip.setData(trans,null,Components.interfaces.nsIClipboard.kGlobalClipboard);
 }
 }
  </script>
</body>

Автор: R.M. 21.7.2005, 01:32
Скрипт не маленький, буду разбираться, в любом случае всем спасибо.

А каким макаром мне переменную туда засунуть вместо текста?
Так штоли?
Код

<? $dir ?>



Mal Hack
Цитата(Mal @ 21.7.2005, 01:20)
Это зависит от того, что ты сделать хочешь. Пока что ты толком ничего не объяснил.

Один ты помоему непонимаеш чего я хочу smile я же ясно написал
Цитата
Хочу чтобы когда пользователь заливал файл ссылка на этот файл сохранялась в буфер, чтобы её можно было вставить в нужное место

Автор: -=Ustas=- 21.7.2005, 07:55
Цитата
Код

<? $dir ?>

<?=$dir?> smile

Автор: sergejzr 21.7.2005, 11:21


Так например
Код

<body onload="javascript:copytext('<?print($dir)?>')">

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)