Модератор: Модераторы разделов
† Stratos †
Сообщения: 19
Сообщение
† Stratos † » 15.10.2005 15:19
В общем, есть созданная внутри тэга DIV таблица. ее можно выделить и изменить размеры. по нажатию кнопки должна возвращаться ширина текущей (выделенной) таблицы. после изменения размера таблицы - другая ее ширина (если она выбрана)
пример:
http://svp.r2.ru/temp/qwerty.html
код (который в примере)
Код: Выделить всё
<html>
<style>.qwe {border: 1px solid #000000; height: 250px; width: 100%; } </style>
<body>
<div id="msg" class="qwe">qwe<br><br><br>
<TABLE width=100 align=center border=1 cellspacing=0 cellpadding=0>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
</TABLE><br>
</div>
<input type=button value=GetWidth onclick=GetWidth();>
<script>
var doc = document.all.msg;
var sel= null;
var range = null;
window.onload = function() { document.all.msg.contentEditable = true; }
function GetWidth(){
var selectedTable = GetSelectedTable();
alert(selectedTable.width);
}
function GetSelectedTable() {
var sTagname = 'TABLE';
sel = document.selection;
rng = sel.createRange();
// var el = rng.parentElement;
var el = rng;
for (i=0; i<10; i++) {
if (el.tagName != sTagname) {
if (el.id == msg) {
el = null;
} else {
var el = el.parentElement;
}
if (el == null) break;
} else {
break;
}
}
return el;
}
</script>
</body>
</html>
однако шишина не выводится. подскажите пожалуйста, где ошибка?
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 15.10.2005 19:09
хотя бы там, где ты используешь document.selection
лично у меня эта фигня - undefined.
почитай
http://www.quirksmode.org/js/selected.html
и научись пользоваться гуглем. это полезно.
слава роботам!
† Stratos †
Сообщения: 19
Сообщение
† Stratos † » 15.10.2005 22:24
и к чему ты эту ссылку поместил? я не спрашивал о том, как бы мне заставить работать скрипт под всеми обозревателями.
elide писал(а): ↑ 15.10.2005 19:09
и научись пользоваться гуглем. это полезно.
хм... что же мне ответит гугль на мой вопрос?
elide писал(а): ↑ 15.10.2005 19:09
хотя бы там, где ты используешь document.selection
лично у меня эта фигня - undefined.
ну если такой умный, что аж лень включать мозги, то, пожалуйста, все-таки включи их и ответь на конкретный вопрос.
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current
Сообщение
ddc » 15.10.2005 22:28
† Stratos † писал(а): ↑ 15.10.2005 22:24
хм... что же мне ответит гугль на мой вопрос?
<...>
ну если такой умный, что аж лень включать мозги, то, пожалуйста, все-таки включи их и ответь на конкретный вопрос.
А НУ,
elide , БЫСТРО, <beep> ТУПАЯ, ОТВЕТИЛ НА МОЙ ВОПРОС НА!!! ЧЁ, <beep>, СИДИШЬ, <beep>?!
Уважаемый
† Stratos † !
Будьте добры, никогда более на этом форуме не задавайте вопрос "что же мне ответит гугль?" Этот вопрос выдаёт в Вас хама трамвайного обыкновенного, связываться с которым до брезгливости противно.
С уважением,
Дмитрий Царьков
† Stratos †
Сообщения: 19
Сообщение
† Stratos † » 17.10.2005 08:11
проблема решена.
решение:
Код: Выделить всё
<html>
<style>.qwe {border: 1px solid #000000; height: 250px; width: 100%; } </style>
<body>
<div id="msg" class="qwe">qwe<br><br><br>
<TABLE width=200 align=center border=1 cellspacing=0 cellpadding=0>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD>
</TR>
</TABLE><br>
</div>
<input type=button value=GetWidth onclick=GetWidth();>
<script>
var doc = document.all.msg;
var sel= null;
var range = null;
window.onload = function() { document.all.msg.contentEditable = true; }
function GetWidth(){
var sTab = GetSelectedTable();
if (sTab != null)
alert([sTab.tagName,sTab.offsetWidth]);
}
function GetSelectedTable() {
sel = doc.document.selection;
if (sel.type == "Control") {
range = sel.createRange();
if (range.item(0).tagName == "TABLE")
return range.item(0);
}
return null;
}
</script>
</body>
</html>
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 17.10.2005 09:38
как и следовало ожидать, на мозиловских движках не работает.....
слава роботам!
† Stratos †
Сообщения: 19
Сообщение
† Stratos † » 17.10.2005 13:06
elide писал(а): ↑ 17.10.2005 09:38
как и следовало ожидать, на мозиловских движках не работает.....
дело в том, что задача совместимости с разными браузерами не ставилась.....
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 17.10.2005 14:46
в konqueror тоже не работает.
в опере - не работает.
даже под виндой в 6 IE щас посмотрел - не работает.
если задача совместимости с IE, opera, mozilla не ставилась, то для чего это писалось? для safari?
слава роботам!
† Stratos †
Сообщения: 19
Сообщение
† Stratos † » 17.10.2005 16:06
elide писал(а): ↑ 17.10.2005 14:46
в konqueror тоже не работает.
в опере - не работает.
даже под виндой в 6 IE щас посмотрел - не работает.
если задача совместимости с IE, opera, mozilla не ставилась, то для чего это писалось? для safari?
у меня IE 6.0 (6.0.2900.2180.xpsp_sp2.rtm.040803-2158) и все работает.
короче тема закрыта. всем, кому нарушил покой - личные сообщения