Я хочу смоделировать щелчок для привязки тега со всеми дополнительными функциями, такими как правильная обработка цели.
Кажется, существует метод «[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; потому что он не обрабатывает атрибут "target". Я могу выполнить жесткое кодирование на основе целевого значения, но я бы тоже хотел этого избежать.
Есть предложение перейти на JQuery, но я не уверен, насколько хорошо он обрабатывает целевое свойство, так как раньше я с ним не работал.