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