Форум Академгородка, Новосибирск > Проблема с Javascript
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с Javascript
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование > WEB-программирование
Сибирский
возникла проблема, в одном документе имеется данный жабаскрипт:
Код
       <script type="text/javascript">
       window.onload=function(){
       if(!NiftyCheck())
       return;
       Rounded("div.round","#e8eef0","#e0e7e9");
       }
       </script>

все работает замечательно,
но при добавлении другого скрипта:
Код
<script type="text/javascript">
     var myMenu;
     window.onload = function() {
     myMenu = new SDMenu("my_menu");
     myMenu.init();
     };
     </script>

первый перестаёт работать (хотя второй функционирует нормально).

Поскольку я в Javascript лютый чайник, прошу помощи у многоувожаемых гуру, как решить сею проблему, чтобы оба скрипта работали? blink.gif
elf
Код
<script type="text/javascript">
     var myMenu;
     window.onload = function() {
     myMenu = new SDMenu("my_menu");
     myMenu.init();

     if(!NiftyCheck())
       return;
       Rounded("div.round","#e8eef0","#e0e7e9");
     };
     </script>
Сибирский
elf, спасибо огромное
fiend
Я бы как-нибудь так сделал цепочку вызовов:
CODE
function addOnLoadEvent(nextOnLoad) {
    var oldOnLoad = window.onload;
    if(typeof window.onload != "function")
        window.onload = nextOnLoad;
    else
        window.onload = function() {
            oldOnLoad();
            nextOnLoad();
        }
}

addOnLoadEvent(function(){
     var myMenu;
     window.onload = function() {
     myMenu = new SDMenu("my_menu");
     myMenu.init();
});

addOnLoadEvent(function(){
    if(!NiftyCheck())
    return;
    Rounded("div.round","#e8eef0","#e0e7e9");
});


Не уверен, что будет работать, но идея, думаю, понятна.
Lunohod
Цитата(fiend @ 18.01.2008, 14:50) *
Я бы как-нибудь так сделал цепочку вызовов:
Код
function addOnLoadEvent(nextOnLoad) {
    var oldOnLoad = window.onload;
    if(typeof window.onload != "function")
        window.onload = nextOnLoad;
    else
        window.onload = function() {
            oldOnLoad();
            nextOnLoad();
        }
}

addOnLoadEvent(function(){
     var myMenu;
     window.onload = function() {
     myMenu = new SDMenu("my_menu");
     myMenu.init();
});

addOnLoadEvent(function(){
    if(!NiftyCheck())
    return;
    Rounded("div.round","#e8eef0","#e0e7e9");
});


Не уверен, что будет работать, но идея, думаю, понятна.


А если фунции будет больше двух?
как вариант можно завести массив функции. И по порядку их вызывать.
fiend
QUOTE(Lunohod @ 18.01.2008, 17:18) *
А если фунции будет больше двух?

so wut?
CODE
<html>
<head></head>
<body>
    <script type="text/javascript">
        function addOnLoadEvent(nextOnLoad) {
            var oldOnLoad = window.onload;
            if(typeof window.onload != "function")
                window.onload = nextOnLoad;
            else
                window.onload = function() {
                    oldOnLoad();
                    nextOnLoad();
                }
        }

        addOnLoadEvent(function(){
            alert("first");
        });

        addOnLoadEvent(function(){
            alert("second");
        });

        addOnLoadEvent(function(){
            alert("third");
        });
    </script>
</body>
</html>


QUOTE(Lunohod @ 18.01.2008, 17:18) *
как вариант можно завести массив функции. И по порядку их вызывать.

Имеет смысл если планируете впоследствии менять порядок их исполнения.
XSM
Люди, имеется проблема.
Если файл виндовской справки. Есть картинка. Если делать что бы картинка загружалась как отдельная страница, а потом делать обратно переход через хисторибак(), то весь скрытый текст слетает в ноль.
Нужно: сделать как тут - http://eu.masseffect.com/media/screens.asp
Тыкаешь картинку, она открывается поверх окна, не замещая его.
Возможно ли такое сделать в страницах html?

Вопрос задан здесь т.к думается мне что это имеет отношение к JS
Zebooka
Lightbox, Shadowbox и еще огромное число подобных просмотрщиков.

ЗЫ: Я например написал вообще свой.
XSM
Эм... кто-нить знает как сделать такое:
Запускается страница хтмлпедж1.хтмл, на ней в поле текстареа1 вводим текст, затем тыкаем на ссылку, открывается страница хтмлпейдж2.хтмл, на ней имеется текстареа2, в которой должен появиться текст из текстареа1
?
milfoil
Такое возможно сделать, только в том случае если вторая страница будет открыта в новом окне, т.е. через ссылку с атрибутом target='_blank' на первой странице. Тогда к родительскому окну можно обратиться через window.opener
Бян
Цитата(XSM @ 01.04.2010, 18:56) *
Эм... кто-нить знает как сделать такое:
Запускается страница хтмлпедж1.хтмл, на ней в поле текстареа1 вводим текст, затем тыкаем на ссылку, открывается страница хтмлпейдж2.хтмл, на ней имеется текстареа2, в которой должен появиться текст из текстареа1
?

Зависит от котнтекста задачки. Есть возможность добавлять свой код в хтмлпейдж2.хтмл?
XSM
Цитата(milfoil @ 01.04.2010, 22:16) *
Такое возможно сделать, только в том случае если вторая страница будет открыта в новом окне, т.е. через ссылку с атрибутом target='_blank' на первой странице. Тогда к родительскому окну можно обратиться через window.opener
А можно пример?
Страницы для компиляции в chm

Цитата(Бян @ 02.04.2010, 17:20) *
Есть возможность добавлять свой код в хтмлпейдж2.хтмл?
Могу ли я редактировать страницу(да), или что-то с более глубоким смыслом?

И ещё вопрос:
сейчас ради общего развития писал преобразователь десятиричных чисел в шестнадцатиричные. И пчоему-то вместо того что нужно выводит не то.
Вот код:
Код
        function qwe() {
            a = 1682513;
            while (a > 15) {
                z = a / 16;
                z = parseInt(z.toFixed(0));
                y = z * 16;
                x = a - y;
                a = z;
                if (x == 10) {
                    x = A;
                }
                else if (x == 11) {
                    x = B;
                }
                else if (x == 12) {
                    x = C;
                }
                else if (x == 13) {
                    x = D;
                }
                else if (x == 14) {
                    x = E;
                }
                else if (x == 15) {
                    x = F;
                }
                daewq.innerHTML = x + daewq.innerHTML;
            }
            daewq.innerHTML = a + daewq.innerHTML;
        }

Выводить должен 19AC51, а выводит 2-6-5-451

Считал вручную тем-же способом что в коде - всё ок.

Тока эта, смеяцо не надо, ок?
milfoil
попробуйте так
Код
function dec2hex(dec)
    {
        var res, hex = '', sign = '';
        
        if(dec < 0)
        {
            sign = '-';
            dec = -dec;
        }
        
        do
        {
            res = dec % 16;
            dec = (dec - res) / 16;
            hex = (res > 9 ? String.fromCharCode(55 + res) : res.toString()) + hex;
            
        }while(dec != 0)
        
        return sign + hex;
    }
    
    alert(dec2hex(1682513))


Вообще в JS есть втроенные функции для перевода из одной сс в другую.

Цитата
А можно пример?

На первой странице есть textarea с id='text', и ссылка <a href='page2.html' target='_blank'>page2</a> ведущая на вторую.
На второй также есть textarea с id='text'. Тогда на второй можно записать
Код
document.getElementById('text').value = window.opener.document.getElementById('text').value

Что поместит текст из textarea с первой страницы в textarea на второй.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.