За последние 24 часа нас посетили 16668 программистов и 1643 робота. Сейчас ищут 977 программистов ...

доступ к событию onclick

Тема в разделе "JavaScript и AJAX", создана пользователем __romka_, 3 мар 2011.

  1. __romka_

    __romka_ Активный пользователь

    С нами с:
    27 окт 2010
    Сообщения:
    5
    Симпатии:
    0
    у меня есть цель менять некоторые параметры тегов в html коде.

    В настоящий момент успешно меняю, например путь к картинке вот так:

    html:
    HTML:
    1.  
    2. <img name="imgname" src="path/to/image">
    3.  
    JavaScript
    [js]
    document.all["imgname"].src="new/path";
    [/js]

    все нормально отрабатывает


    А вот так:
    html:
    HTML:
    1.  
    2. <a name="hrefname" onclick="" href="path/to/script">
    3.  
    JavaScript
    [js]
    document.all["hrefname"].onclick="DoIt()";
    [/js]
    не получается (((((( onclick - не переписывается (((
    что не так я делаю?
    [/html]
     
  2. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
  3. __romka_

    __romka_ Активный пользователь

    С нами с:
    27 окт 2010
    Сообщения:
    5
    Симпатии:
    0
    делаю так:
    html:

    HTML:
    1.  
    2. <a name="hrefname" onclick="" href="path/to/script">
    3.  
    [js]
    document.getElementsByName("hrefname").onclick="DoIt()";
    [/js]

    Не работает (((((

    Хотя выше, конструкция с заменой имени картинки - работает нормально
    html:
    HTML:
    1.  
    2.  <img name="imgname" src="path/to/image">
    3.  
    JavaScript
    [js]
    document.all["imgname"].src="new/path";
    [/js]
     
  4. __romka_

    __romka_ Активный пользователь

    С нами с:
    27 окт 2010
    Сообщения:
    5
    Симпатии:
    0
    странность с document.all

    пока что получается так, что я вобще не могу добраться до события onklick

    оба варианта не работают.
    1:
    [js]
    document.all["hrefname"].onclick="off";
    [/js]

    2:
    [js]
    document.getElementsByName("hrefname").onclick="off";
    [/js]



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

    __romka_ Активный пользователь

    С нами с:
    27 окт 2010
    Сообщения:
    5
    Симпатии:
    0
    вобщем путем поступательных движений головы, заканчивающих неупругим ударом о монолитно-бетонное перекрытие (шероховатосью соответствующей СНИП 17255-72) несущего характера порядка 300 итераций с периодичностью 2-3 удара в минуту и длительностью соприкосновения до 0,003 секунды было установлено, что
    обоими способами

    [js]document.all["hrefname"].onclick="off";[/js]
    и
    [js]document.getElementsByName("hrefname").onclick="off";[/js]

    Можно подменить некоторые значения некоторых параметров тега ссылки. Такие как title, ame, id.
    Но некоторые, а особенно события (онклик в их числе) нельзя.

    На данный момент рассматриваю вариант помещения ссылки в блок, иннерХТМЛ-ом получать его содержимое (целиком всю ссылку со всеми параметрами), и заменять нужной ссылкой.

    Насколько это правильно, и есть ли еще вменяемые варианты действия?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    __romka_
    более правильным является не замена того, что находится в онклик, а вызов в онклик-е функции с передачей параметров.
    а уже внутри фукнции разруливать что делать, например, с помощью глобальной переменной, устанавливаемой в другой функции.
     
  7. __romka_

    __romka_ Активный пользователь

    С нами с:
    27 окт 2010
    Сообщения:
    5
    Симпатии:
    0
    решение пришло неожиданно.

    сделал так.

    в ссылке OnClick="bla-bla"

    а потом, по ситуации заменяю:

    [js]
    document.body.innerHTML = document.body.innerHTML.replace('bla-bla', 'DoIt()');
    [/js]

    и все
     
  8. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Ух ё-моё...