powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / setAttribute("onClick", ...) vs. IE7
9 сообщений из 9, страница 1 из 1
setAttribute("onClick", ...) vs. IE7
    #36229750
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Понимаю, что в инете куча примеров, как динамически подвесить на onClick что-либо и чтобы небыло ругани у IE <=7... Но что-то к моей функции не получается подогнать их... Подскажите как правильно реализовать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
function textToggle(obj) {
    textBlock = document.getElementById(obj);
    header = document.getElementById('ctl00_cph_content_top_fouth');
    bSecond = document.getElementById('ctl00_cph_content_bottom_bSecond');
    bThrid = document.getElementById('ctl00_cph_content_bottom_bThrid');
    if (textBlock.style.display != 'none') {
        textBlock.style.display = 'none';
        header.innerHTML = "Калькулятор";
        bSecond.innerHTML = "Вопросы и ответы";
        bSecond.href = "#";
        bSecond.setAttribute("onClick", "location.replace('l.aspx?inf=3')");
        bThrid.innerHTML = "Оплатить";
        bThrid.setAttribute("onClick", "textToggle('" + obj + "');");
    }
    else {
        textBlock.style.display = 'block';
        header.innerHTML = "Оплатить";
        bSecond.innerHTML = "Калькулятор";
        bSecond.href = "#";
        bSecond.setAttribute("onClick", "textToggle('" + obj + "');");
        bThrid.innerHTML = "Вопросы и ответы";
        bThrid.setAttribute("onClick", "location.replace('l.aspx?inf=3')");

    }
}
на входе id скрываемого\раскрываемого блока.
срабатывает по onClick.
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229789
1. bSecond.href = "#";
Лучше писать:
Код: plaintext
bSecond.href="javascript:void(0);"
2. bSecond.setAttribute("onClick", "location.replace('l.aspx?inf=3')");
Да, эта конструкция под ИЕ6 не работает. Что и под ИЕ7 - поже нет что-ли? Тогда напишите:
Код: plaintext
bSecond.onclick=function(){location.replace('l.aspx?inf=3')};
Причём, не onClick , а onclick .
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229812
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
bSecond.href="javascript:void(0);"
в ie6 это может привести к тому, что если кнопка сабмитит форму, то форма никуда не уйдет. В обработчике нужно делать стопарить ивент, либо возвращать false, если обработчик инлайновый.

п.с. за что забанили-то? :)
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229821
зып.с. за что забанили-то? :)
Всё в порядке .
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229877
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что тут тогда сидишь? а ну брысь делом заниматься :)
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229886
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Сейчас попробую. Да в IE7 такая же беда. через setAttribute onClick только с 8й версии поддерживается.
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36229915
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, действительно, все заработало. Остановился на следующем варианте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function textToggle(obj) {
    textBlock = document.getElementById(obj);
    header = document.getElementById('ctl00_cph_content_top_fouth');
    bSecond = document.getElementById('ctl00_cph_content_bottom_bSecond');
    bThrid = document.getElementById('ctl00_cph_content_bottom_bThrid');
    if (textBlock.style.display != 'none') {
        textBlock.style.display = 'none';
        header.innerHTML = "Калькулятор";
        bSecond.innerHTML = "Вопросы и ответы";
        bSecond.href = "#";
        bSecond.setAttribute("onClick", "location.replace('l.aspx?inf=3')");
        if (bSecond.onclick != "location.replace('lineage.aspx?inf=3')") {
            bSecond.onclick = function() { location.replace('l.aspx?inf=3'); };
            bThrid.onclick = function() { textToggle(obj); };
        }
        else bThrid.setAttribute("onClick", "textToggle('" + obj + "');");
        bThrid.innerHTML = "Оплатить";
    }
    else {
        textBlock.style.display = 'block';
        header.innerHTML = "Оплатить";
        bSecond.innerHTML = "Калькулятор";
        bSecond.href = "#";
        bSecond.setAttribute("onClick", "textToggle('" + obj + "');");
        if (bSecond.onclick != "textToggle(" + obj + ");") {
            bSecond.onclick = function() { textToggle(obj); };
            bThrid.onclick = function() { location.replace('l.aspx?inf=3'); };
        }
        else bThrid.setAttribute("onClick", "location.replace('l.aspx?inf=3');");
        bThrid.innerHTML = "Вопросы и ответы";
    }
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36230336
Не спрашивал на работе у кого есть ИЕ7 (дома на обоих компьютерах ИЕ8 стоит). Не могли бы Вы написать вот так:
Код: plaintext
1.
bSecond.setAttribute("onClick", "location.replace('l.aspx?inf=3')", 0 );
Там ещё (в setAttribute) третий аргумент есть, по умолчанию =1, а нужно 0.

ПС. Вопрос важен. Например, если пишете аспнет-контролья, после постбека, если сохранить innerHTML контрола или странички - сетАттрибуте остаётся, а такая штука, что я написал - нет.
...
Рейтинг: 0 / 0
setAttribute("onClick", ...) vs. IE7
    #36235597
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне повезло, что мне как раз этого ненужно)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / setAttribute("onClick", ...) vs. IE7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]