
В этом посте по мере моего узнавания будут появляться полезные функции и приемы работы с JavaScript. Если для вас это очевидные вещи, просто не читайте (:
Задача: в приложении имелась ссылка, сгенеренная 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;
}
Задача: в нашем приложении на перле файлы скриптов подключаются специальным образом из определенной папочки. Мне потребовалось подключить еще один скрипт из другого места. Расширять старый механизм подключения нехорошо.
Решение: в нужном участке 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);
}
При написании поста я неоднократно пользовалась инструментом подготовки кода к публикации (:
Комментарии
Отправить комментарий