Определение ширины динамической таблицы внутри тэга DIV

Модератор: Модераторы разделов

† Stratos †
Сообщения: 19

Определение ширины динамической таблицы внутри тэга DIV

Сообщение † Stratos † »

В общем, есть созданная внутри тэга 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
ОС: лялих

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение elide »

хотя бы там, где ты используешь document.selection
лично у меня эта фигня - undefined.
почитай http://www.quirksmode.org/js/selected.html
и научись пользоваться гуглем. это полезно.
слава роботам!
Спасибо сказали:
† Stratos †
Сообщения: 19

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение † Stratos † »

elide писал(а):
15.10.2005 19:09
почитай http://www.quirksmode.org/js/selected.html

и к чему ты эту ссылку поместил? я не спрашивал о том, как бы мне заставить работать скрипт под всеми обозревателями.

elide писал(а):
15.10.2005 19:09
и научись пользоваться гуглем. это полезно.

хм... что же мне ответит гугль на мой вопрос?

elide писал(а):
15.10.2005 19:09
хотя бы там, где ты используешь document.selection
лично у меня эта фигня - undefined.

ну если такой умный, что аж лень включать мозги, то, пожалуйста, все-таки включи их и ответь на конкретный вопрос.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение ddc »

† Stratos † писал(а):
15.10.2005 22:24
хм... что же мне ответит гугль на мой вопрос?
<...>
ну если такой умный, что аж лень включать мозги, то, пожалуйста, все-таки включи их и ответь на конкретный вопрос.
А НУ, elide, БЫСТРО, <beep> ТУПАЯ, ОТВЕТИЛ НА МОЙ ВОПРОС НА!!! ЧЁ, <beep>, СИДИШЬ, <beep>?!

Уважаемый † Stratos †!
Будьте добры, никогда более на этом форуме не задавайте вопрос "что же мне ответит гугль?" Этот вопрос выдаёт в Вас хама трамвайного обыкновенного, связываться с которым до брезгливости противно.
С уважением,
Дмитрий Царьков
Спасибо сказали:
† Stratos †
Сообщения: 19

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение † Stratos † »

проблема решена.

решение:

Код: Выделить всё

<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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
      </TR>
      <TR>
        <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
      </TR>
      <TR>
        <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</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
ОС: лялих

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение elide »

как и следовало ожидать, на мозиловских движках не работает.....
слава роботам!
Спасибо сказали:
† Stratos †
Сообщения: 19

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение † Stratos † »

elide писал(а):
17.10.2005 09:38
как и следовало ожидать, на мозиловских движках не работает.....


дело в том, что задача совместимости с разными браузерами не ставилась.....
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение elide »

в konqueror тоже не работает.
в опере - не работает.
даже под виндой в 6 IE щас посмотрел - не работает.

если задача совместимости с IE, opera, mozilla не ставилась, то для чего это писалось? для safari?
слава роботам!
Спасибо сказали:
† Stratos †
Сообщения: 19

Re: Определение ширины динамической таблицы внутри тэга DIV

Сообщение † Stratos † »

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) и все работает.

короче тема закрыта. всем, кому нарушил покой - личные сообщения
Спасибо сказали: