Есть ссылка:
<a title="Заголовок" href="javascript:someFunc()">ссылка</a>
Соответственно вызывается функция. Вопрос: можно ли в этой функции получить данные об объекте, которая вызвала функцию? В частности получить title
, или текст ссылки?
Ссылок будет много, хотелось бы обойтись без дублирования информации из ссылки в параметрах функции.
Также, знаю, что можно присвоить ссылкам id, передавать его параметром, а в функции уже использовать getElementById()
, но опять же, конечный пользователь не слишком умён, хотелось бы, что бы он просто создавал ссылки, а дальше всё делалось в скрипте.
Не самое лучшее решение ставить функцию в тег href
Так лучше:
<a href="#" onclick="MyFunction();">text</a>
Так еще лучше:
<a href="#" onclick="MyFunction();return false;">text</a>
Почему так лучше? потому что это говорит браузеру что дальше, после выполнения функции, не нужно ничего делать.
Вы можете сделать так
function someFunc(sender){
alert(sender.text)
alert(sender.title);
}
<a title="Заголовок" href="#" onclick="someFunc(this); return false;">ссылка</a>
this
function foo(el){
console.log(el.title, el.innerHTML);
}
<a title="Заголовок" href="javascript:" onclick="foo(this)">ссылка</a>
В этом случае нужно только уточнить, какие именно объекты нуждаются в обработке.
Например, обработка всех тегов a
:
document.addEventListener('click', function(e) {
var el = e.target;
if (el.tagName !== 'A') return;
console.log(el.title, el.innerHTML);
});
<a title="Заголовок" href="javascript:">ссылка</a>
Если шаблон править нельзя, вы можете также проверять аттрибут href
, чтобы оперировать нужными ссылками.
document.addEventListener('click', function(e) {
var el = e.target;
if (el.tagName !== 'A') return;
if (el.href !== 'javascript:someFunc()') return;
console.log(el.title, el.innerHTML);
e.preventDefault(); // отменяем действие по href
});
<a title="Заголовок" href="javascript:someFunc()">ссылка</a>
document.activeElement
function foo() {
var el = document.activeElement;
console.log(el.title, el.innerHTML);
}
<a title="Заголовок" href="javascript:foo()">ссылка</a>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Код выше определенно находит необходимый Cell (так как consolelog() выводит то, что необходимо)
Вообщем суть такая, на сайте ведутся логи, js определяет разрешение экрана и отправляет обработчику на php, который заносит в логи все данные...