сценарий на языке JavaScript
От: zaroman  
Дата: 16.04.04 04:46
Оценка:
Здраствуйте! Подскажите,пожалуйста, как можно сделать следующее:
надо написть сценарий на языке JavaScript, который должен обеспечить возможность удаления рисунка из параграфа текста.
Заранее большое спасибо!
Re: сценарий на языке JavaScript
От: marx paul Германия Провести онлайн-опрос
Дата: 16.04.04 11:10
Оценка:
Здравствуйте, zaroman, Вы писали:

Z>Здраствуйте! Подскажите,пожалуйста, как можно сделать следующее:

Z>надо написть сценарий на языке JavaScript, который должен обеспечить возможность удаления рисунка из параграфа текста.
Z>Заранее большое спасибо!

naprimer tak:


<p>
<img id="imageToDelete" src="mysrc.gif" onclick="delImg();">
</p>

<script>
function delImg(){
  document.getElementById('imageToDelete').outerHTML = '';
}
</script>
Провести онлайн-опрос
Online-Umfrage erstellen
Re[2]: сценарий на языке JavaScript
От: uzzy Россия  
Дата: 16.04.04 17:39
Оценка: 3 (1)
Здравствуйте, marx paul, Вы писали:

...

по мне так лучше так:
function deleteObj (obj) {
   if (obj != null)
     if (obj.parentNode != null)
       obj.parentNode.removeNode (obj);
}


Прибивая тег через outerHTML ты не прибибаешь обработчики событий (в частности для IE есть такая особенность), которые могли быть прикручены к удаляему объекту. Да и сам объект ты не удаляешь собсно. В общем, при долгой работе со страницей, обладающей подобными скриптами (то есть многократно вызывается операции outerHTML), IE с ума сходит.
RSDN@Home 1.1.3 stable
Re[3]: сценарий на языке JavaScript
От: ЖуК Украина http://smart-ip.net/
Дата: 17.04.04 10:01
Оценка: +2
Здравствуйте, uzzy, Вы писали:

U>по мне так лучше так:

U>
U>function deleteObj (obj) {
U>   if (obj != null)
U>     if (obj.parentNode != null)
U>       obj.parentNode.removeNode (obj);
U>}
U>



А по мне ещё лучше вот так:

function deleteObj( obj) {
    if (!obj.parentNode) return false;
    obj.parentNode.removeChild( obj);
    return true;
}


Это, uzzy, то же самое, что и ты хотел сделать, только почему ты removeNode написал я не понял Я думаю — просто очепятнулся...

Хотя для любителей removeNode можно поступить и еще хитрее, если в коде уже заюзан removeNode и не хочется править весь код:

// теперь использованные конструкции вида
// document.getElementById( 'Blablabla').removeNode() будут рабтать в браузерах,
// поддерживающих стандарт w3c:
Object.prototype.removeNode = function () {
    if (!this.parentNode) return fasle;
    this.parentNode.removeChild( this);
    return true;
}


Это может пригодиться тому, кто думает не только о пользователях ИЕ.
_____________________________________________________________
"Голова — кость, поэтому болеть не может..." © Неизвестный автор
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.