Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Виджет "Диалог"! (https://javascript.ru/forum/project/14097-vidzhet-dialog.html)

monolithed 06.01.2011 00:43

Цитата:

Сообщение от Maxman
В винде так-же)

Помоему тут смысл немного иной.

Цитата:

Сообщение от Maxman
Эта функция входит в состав движка селекторов (выборки иными словами), спецсимволы - да, в каком-то смысле защита

А можно по подробней, а то мне даже интересно стало :)

По коду,я заметил несколько нюансов:
1. относительно циклов

2. относительно indexOf(). Также советую обратить внимание на метод search().

3. относительно outerHTML. По моему __defineGetter__ очень тормознутый, если есть желание можете проверить, к томуже он если мне не изменяет память работает в FF3+ (хотя кто сейчас FF2 пользуется). Плюс есть одно НО: XMLSerializer() в некоторых реализациях, когда тип документа Strict заместо <span></span> возвращает <span />...!


Но все-таки как вариант альтернативной реализации:

<p id="p">
    <span>|</span>
</p>
<script type="text/javascript">
function outerHTML(node){
    return node.outerHTML || (
        function(i){
          var wrap = document.createElement('div'), context;
          wrap.appendChild(i.cloneNode(true));
          context = wrap.innerHTML;
          wrap = null;
          return context;
      })(node);
}

alert(outerHTML(document.getElementById('p')));
</script>


Смотрим в FF (где-то в лучшем случае добавляется атрибут пространства имен xmlns, а где-то (до FF 3.5 элемент приводится к XML нотации))
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head><head>
<body>
    <p id="p"></p>
    <script type="text/javascript">
    (function(node){
        return alert(node.outerHTML || new XMLSerializer().serializeToString(node));
    }(document.getElementById('p')));
    </script>
</body>


4. try/catch по мне так лишнии, точнее их желательно условиями заменить, т.к. они вроде бы прожорливы.

5. обратите внимание на метод getElementsByClassName().

6. в фунции combinator if-ы лучше заменить на switch, т.к. он быстрей будет

Maxman 06.01.2011 10:57

monolithed, спасибо за замечания. Но вообще в этой теме я хотел показать тока диалог. Про фреймворк лучше открыть отдельную тему... Тока сначала допишу документацию к нему.

Maxman 09.01.2011 18:46

Ещё написал плагин Resize: http://syntax-js.net.ru/resize.htm
Хотел добавить к окну. Надеюсь кто-нить посморит, вдруг баги какие обнаружатся... )

Vulkan 09.01.2011 19:10

Maxman, отличный плагин, только вот одно но, немного трудновато подхватить область чтобы ресайзить див.

Maxman 09.01.2011 20:09

Цитата:

Сообщение от Vulkan (Сообщение 87091)
немного трудновато подхватить область чтобы ресайзить див.

По умолчанию стоит 2 пикселя, толщину можно настроить:
S("selector").resizable({ thick: 5 }); // будет 5 пикселей

Ну документации конечно пока нет... на днях напишу, залью на сайт свой.

B~Vladi 10.01.2011 11:38

Maxman, если надо, для сайта - есть хост

Maxman 10.01.2011 13:38

B~Vladi, мне бы он не помешал... а то на ucoz'е приходится хоститься. Если вы считаете проект интересным, буду оч рад переехать туда :) Где эт можно обсудить?

B~Vladi 10.01.2011 14:08

В скайпе. В профиле указан.

Maxman 23.01.2011 12:52

Добавил ресайз, появились баги и поддержка ИЕ пропала( Щас обновил. Эх... буду дорабатывать :)

Александр х@к 23.10.2011 21:34

дайте исходник, плиз


Часовой пояс GMT +3, время: 11:13.