Я хочу смоделировать щелчок тега привязки со всеми дополнительными функциями, такими как правильная обработка цели.
Кажется, есть метод "[click ()] [3]" для DOM-объекта привязки, но не все браузеры поддерживают это. Firefox выдает эту ошибку:
Ошибка: anchorObj.click не является функцией
Это также странно работает в Opera 10 и Konqueror, вызывая бесконечные щелчки, когда он вызывается внутри обработчика onclick окружающего div. Я думаю, что только IE8 работает с ним нормально. Во всяком случае, я не хочу, потому что основные браузеры имеют проблемы с этим.
Я нашел это альтернативное решение для Firefox на форумах Mozilla:
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchorObj.dispatchEvent(evt);
Это кажется мне слишком уродливым и обременительным. Я не знаю, насколько он совместим, и я хочу, чтобы в максимально возможной степени не писать код для браузера.
Я не могу использовать location.href = anchorObj.href; потому что он не обрабатывает «целевой» атрибут. Я могу сделать жесткое кодирование, основываясь на значении цели, но я бы тоже хотел этого избежать.
Есть предложение перейти на JQuery, но я не уверен, насколько хорошо он обрабатывает целевое свойство, так как раньше я с ним не работал.