Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как удалить обработчик из себя и можно ли? (https://javascript.ru/forum/events/13927-kak-udalit-obrabotchik-iz-sebya-i-mozhno-li.html)

Evgen1917 21.12.2010 04:35

Как удалить обработчик из себя и можно ли?
 
Что то никак не получается снести свой обработчик может неправильно записал? (Требуется его прибить, как сработает 1 раз). Вот такой код,(getElementsByClassName поставил чтобы в консоли смотреть как обработчик все срабатывает и срабатывае повторно)
window.addEventListener('message',MyPrinter=function (e) {
			var d = [];
			if( e.data && (e.data.indexOf(Label) == 0) && (d = decodeURIComponent(e.data).split('\n')) && (d[1].length > 0) ){
				var form = document.getElementsByClassName('form')[0];
				if (form){
					form.value = d[1];
				}
				else {
					addEventListener('DOMContentLoaded', function(){
						var form = document.getElementsByClassName('form')[0];
						form.value = d[1];
					}, false);
				};
				window.removeEventListener('message',MyPrinter,false);
			};
		},false);

itrelease 23.12.2010 12:56

window.addEventListener('message',function MyPrinter(e) {
  var d = [];
  
  if(e.data && (e.data.indexOf(Label) == 0) && (d = decodeURIComponent(e.data).split('\n')) && (d[1].length > 0) ){
    var form = document.getElementsByClassName('form')[0];
    
    if (form){
      form.value = d[1];
    }
    else {
      addEventListener('DOMContentLoaded', function(){
        var form = document.getElementsByClassName('form')[0];
	form.value = d[1];
      }, false);
    }
    window.removeEventListener('message',MyPrinter,false);
  }
},false);

dmitriymar 23.12.2010 18:21

или положить всё это в контейнер-а при срабатывании события переписывать содержимое через innerHtml без обработчика события


Часовой пояс GMT +3, время: 10:20.