[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сохранить набор величин в clipboard
sergeiss
Подскажите, плз, как средствами JS скопировать содержимое таблицы (целиком, вместе с заголовками) в виндусовый буфер обмена? Кнопку я сделаю, функцию опишу, АйДи для таблицы назначу, повешу на событие OnClick...
А вот дальше смутно несколько представляю smile.gif Может, кто направит на путь истинный?
Скорее всего, надо tableid.body (или нечто в этом роде) куда-то скопировать. Что и куда?




Спустя 11 часов, 21 минута, 6 секунд (23.07.2008 - 02:25) Vento написал(а):
если еще актуально :
Код
<body>
&lt;script type="text/javascript">
function vbufer()
        {
        
        txt=document.getElementById('id_diva').innerHTML
         window.clipboardData.setData("Text", txt)
        
         }

</script>
<div id="id_diva" >
<table  bgcolor="#00FF00"     bordercolor="#FF0000"><tr><td>копируемое1</td><td>копируемое2</td></tr></table>
</div>
<input  value="копировать" type="button" onclick="vbufer()" />
</body>


Работает только в ИЕ !

Если bgcolor="#00FF00" bordercolor="#FF0000" вынесены в CSS, то потеряются по дороге.

Не знаю,на сколько правильно написал,но работает однозначно.
Для других бродилок clipboardData не подходит,копать мануалы надо.

Спустя 6 часов, 37 минут, 21 секунда (23.07.2008 - 09:02) sergeiss написал(а):
Цитата(Vento @ 23.7.2008, 3:25) [snapback]44178[/snapback]
если еще актуально...

Спасибо, работает! smile.gif

Правда, немного не так, как мне бы хотелось...
Я немного модифицировал код в сторону бОльшей универсальности. Правда, результат пока достигнут только частично...
Код
function vbufer( id )
{
alert( "Before" );
txt=document.getElementById( id ).innerHTML;
window.clipboardData.setData("Text", txt);
alert( "Copyied" );
}

В буфер копируется всё: и содержание, и тэги.
Пробовал заменить одну строку на txt=document.getElementById( id ).innerText; - копируется только текст, но я не могу в нем понять, где данные каждой ячейки sad.gif А меня интересует информация именно из таблиц. При вставке (например) в Эксель я не могу разделить информацию по ячейкам.

Как тут быть? Искать данные по каждой ячейке и вставлять их в переменную txt, разделять табуляциями и знаками "новая строка"? Или, может, есть еще какое свойство для таблиц, где это уже есть в готовом виде?

Я тут попытался найти ответ в спецификации DOM. "Поплыл" сразу же, т.к. не сосем понятно, где и чего искать. Да и вообще не понятно, там ли ищу.

Спустя 1 час, 35 минут, 38 секунд (23.07.2008 - 10:38) sergeiss написал(а):
Афигеть можно... Работает, зараза!!! clapping.gifsmile.gif

Спасибо за помощь, мне удалось сделать нужную функцию. Учитывая, что это моя третья функция, сделанная на JS... Я считаю, что неплохо получилось smile.gif Самое главное, что результат достигнут (неожиданно) быстро. И при этом я на уровне "6-го чувства" сумел найти в спецификации DOM то, что требовалось blush.gif

Далее привожу текст того, что получилось.
Код
function vbufer( id )
{
var txt="";
var tab=document.getElementById( id );
var rows=tab.rows.length;
var row;
var cols;
for( i=0; i < rows; i++)
{
row=tab.rows[ i ];

for( j=0; j<row.cells.length; j++)
{
txt = txt + row.cells[j].innerText +"\t";
}
txt = txt + "\n";
}
window.clipboardData.setData("Text", txt);
}


Теперь кнопочку рядом с таблицей ЖМЯК - и можно вставлять результат в Эксель.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.