Показать сообщение отдельно
  #1 (permalink)  
Старый 13.07.2010, 16:04
Интересующийся
Отправить личное сообщение для kibal4iw Посмотреть профиль Найти все сообщения от kibal4iw
 
Регистрация: 14.05.2009
Сообщений: 10

Не погу передать объект в IE с помощью this
Все доброго времени суток.

Тут на форуме нашел такую тему, в которой просят при клике увеличивать шрифт на сайте, я попробовал написать, написал, ну и уже как оч привычно, работает везде, кроме IE. Вот и пришел сюда за помощью. Укажи на мою ошибку, если такое возможно. Все скрипты ниже.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Увеличиваем шрифт</title>
    <style type="text/css">
        body {font-size: 120%;}
        ul.changeFont {list-style: none;}
        ul.changeFont li {
            float: left;
            margin: 0 0 0 5px;
        }
        ul.changeFont li a {
            text-decoration: none;
            color: #082b25;
        }
        ul.changeFont li a:active {color: #ec0024}
        #small {font-size: 11px;}
        #big{font-size: 15px;}
        #bigger{font-size: 19px;}
        .spacer {clear: both;}
        #text {font-size: 14px;}

        .text_14px {font-size: 14px !important;}
        .text_17px {font-size: 17px !important;}
        .text_20px {font-size: 20px !important;}
    </style>
</head>
<body>

<ul class="changeFont" id="changeFont">
    <li id="small"><a href="javascript:void(0);">A</a></li>
    <li id="big"><a href="javascript:void(0);">A</a></li>
    <li id="bigger"><a href="javascript:void(0);">A</a></li>
</ul>
<br class="spacer" />
<div id="text">
    Анонимные - доступны только с момента объявления. Синтаксис new Function используется редко, в основном для получения функции из текста, например, динамически загруженного с сервера в процессе выполнения скриптов.
</div>
</body>
</html>
Скрипт вставлял перед закрывающимся тегом body

<script type="text/javascript">
    // функция обрабатывающая клик
    font = function() {
        // получение элементов по которым будет кликать
        var  mainUl =  document.getElementById("changeFont").getElementsByTagName("LI");

        // узнаем по какому элементу кликнули
        for (j = 0; j < mainUl.length; j ++) {
            if (mainUl[j].nodeName == "LI") {
                var Ulchild = mainUl[j];
                
                // передачи идентификатора элемента по которому кликнули функции уведличивающей шрифт
                Ulchild.onclick = function() { changeFont(this.id) } // кстати вот этот элемент не могу передать в IE
            }
        }

        // загрузка куков
        cookieLoad();
    }

    // ф-ция  уведличивающая шрифт 
    changeFont = function(elem) {
        
        // этому элементу далее будет устанавливатся атрибут для куков **
        var change = document.getElementById("text");
        
        // устанавливаю атрибут для увеличения шрифта
        switch(elem) {
            case "small":
                change.setAttribute("class", "text_14px");
                break;
            case "big":
                change.setAttribute("class", "text_17px");
                break;
            case "bigger":
                change.setAttribute("class", "text_20px");
                break;
        }

        // **
        if (change.getAttribute("class")) {
            var cookie = change.getAttribute("class");
            cookieSet(cookie);
        }
    }

    // устанавливаю куки
    cookieSet = function(cookie) {
        if (navigator.cookieEnabled) {
            if (cookie != '') {
                cDate = new Date;
                cDate.setTime(cDate.getTime() + 3600000);
                rDate = cDate.toGMTString();
                document.cookie = "c_name=" + cookie + "; expires=" + rDate + ";";
            }
            cookieLoad();
        }
    }

    // загружаю куки
    cookieLoad = function() {
        if (navigator.cookieEnabled) {
            if (document.cookie != '') {
                docCook = document.cookie.split('; ');
                docCook[0] = docCook[0].split('=');
                cAttr = docCook[0][1];
                document.getElementById("text").setAttribute('class', cAttr);
            }
        }
    }

    // пытаюсь кросбраузерно запустить ф-цию font
    if (window.addEventListener) window.addEventListener("load", font, false);
    if (window.attachEvent) window.attachEvent("onload", font);
</script>


если вам не сложно укажите на ошибки. Заранее благодарен!
Ответить с цитированием