728x90 banner

Солянка JavaScript



В этом посте по мере моего узнавания будут появляться полезные функции и приемы работы с JavaScript. Если для вас это очевидные вещи, просто не читайте (:

Расширение обработчика onclick

Задача: в приложении имелась ссылка, сгенеренная perlом, со своими атрибутами и своим определенным onclick в <a....>. Мне нужно было вызвать еще одну функцию на клик по ссылке, перед ее собственным обработчиком, не меняя код генерации ссылки.

Решение: ссылку я обернула в span

<span id="mylink">
<a ...>Сама ссылка</a>
</span>

Далее в конце body в тегах <script> .. </script>, (или в обработчик onload) поместила функцию changeLinkOnclick()

function changeLinkOnclick () { 
	//Взяли все ссылки внутри спана с помощью prototype.js
	var mylink = \$('mylink').getElementsByTagName('a'); 
	//сохранили старый обработчик onclick
	var func = mylink[0].onclick;
	//проверка на всякий случай
	if(typeof(func ) == 'function'){ 
		//новый onclick
		mylink[0].onclick = function () { 
			//функция, которую хотели добавить
			saveScript();
			//вызов старого обработчика
			func.call(this);
		}
	}
	return false;	
}

Подключение js скрипта из другого скрипта

Задача: в нашем приложении на перле файлы скриптов подключаются специальным образом из определенной папочки. Мне потребовалось подключить еще один скрипт из другого места. Расширять старый механизм подключения нехорошо.

Решение: в нужном участке body в тегах <script> .. </script> вызвала функцию addJavascript('..../new.js', 'head').

function addJavascript(jsname, pos) {
	var where = document.getElementsByTagName(pos)[0];
	var s = document.createElement('script');
	s.setAttribute('type','text/javascript');
	s.setAttribute('src',jsname);
	where.appendChild(s);
}

При написании поста я неоднократно пользовалась инструментом подготовки кода к публикации (:

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешаю теги: <a> <em> <strong> <pre> <ul> <ol> <li>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.

Подробнее о форматировании

Image CAPTCHA
Регистр символов учитывается.