Есть ли способ программно в javascript вызвать собственное событие click тега? Функции .trigger ('click') или .click() не будут работать, потому что они вызывают событие onClick ссылки, а не событие, следующее за URL-адресом. Мне нужно программно щелкнуть скрытую ссылку и перейти по этой ссылке к новой вкладке в том же браузере. Window.open не будет работать, потому что это вызовет всплывающее окно, и я стараюсь избегать этого. Мне нужно это, потому что я динамически генерирую URL-адрес на стороне сервера и отправляю ответы через JSON. Затем я заполняю атрибут HREF скрытой ссылки с результирующим URL-адресом. Если я смогу получить ответ о том, как это можно сделать, я был бы очень признателен.HTML <a> Native Click Event
ответ
Из того, что я могу сказать, нельзя назвать функцию прямого щелчка ссылки через javascript. Вы можете ссылаться на onclick, используя .click(), но внутренний клик все равно будет выполняться до того, как он будет вызван. Итак, если вы хотите изменить ссылку, прежде чем следовать ей, когда вы нажмете ссылку, вам придется дважды щелкнуть ссылку, прежде чем она отправит вас на измененную ссылку.
Если вы заполняете HREF с ответом JSON, почему бы просто не сохранить его в переменной вместо этого, и когда вы хотите перейти к нему, window.location = yourVariable;
?
Если вы хотите, чтобы это работало только с IE, у меня нет ответа для вас, но я могу вам сказать, в чем проблема. Проблема target=_blank
. Попробуйте следующий код в качестве теста - обратите внимание, что он приведет вас к Google.com - затем попробуйте написать «_blank» в качестве цели. Кажется, это единственное, что браузеры не позволят. Частичный ответ на ваш вопрос: fireEvent()
работает с IE и dispatchEvent()
работает со всем остальным. Если бы кто-то еще мог улучшить этот код, я был бы признателен за лучший ответ.
<html>
<head>
<script type="text/javascript">
window.onload = function fireElement() {
var target=document.getElementById('foobar');
if(document.dispatchEvent) { // W3C
var oEvent = document.createEvent("MouseEvents");
oEvent.initMouseEvent("click", true, true, window, 1, 1, 1, 1, 1, false, false, false, false, 0, target);
target.dispatchEvent(oEvent);
}
else if(document.fireEvent) { // IE
target.fireEvent("onclick");
}
}
</script>
</head>
<body>
<div>
<a id="foobar" target="" href="http://www.google.com"></a>
</div>
</body>
</html>
- 1. HTML ON-CLICK EVENT
- 2. ASP.NET add html click click event
- 3. html body gwt click event
- 4. Bind Click Event в WebView Android React Native
- 5. Flash click click event
- 6. Wordpress click click event
- 7. <option> click event angularjs
- 8. jquery <a> tag click event
- 9. keypress event vs click event
- 10. ng-click Vs click event
- 11. Невозможно использовать <% ... %> на стороне клиента. Click click event
- 12. jQuery HTML click event firing дважды
- 13. CSS/HTML пользовательская кнопка IFTTT click event
- 14. Функция Toggle on html click event
- 15. jQuery click() event
- 16. WebBrowser Click-Event
- 17. Backbone js click event
- 18. ng-click $ event = undefined
- 19. jQuery .click() event
- 20. Triggering click event PhantomJS
- 21. jquery click event bubbling
- 22. JQuery .click event
- 23. ObservableArray.push() триггеры click event
- 24. ExtJS TabItem Click Event
- 25. Override Jquery .click Event
- 26. asp button click event
- 27. TURNJS UNBIND CLICK EVENT
- 28. jquery Autocomplete click event
- 29. Mootools Click Event Problem
- 30. mediaelement js click event
window.location не работает для меня, потому что я не хочу открывать ссылку на текущей вкладке и заменять текущую страницу. Мне нужно, чтобы он перешел на новую вкладку. – usherjer
Согласен, я не вижу смысла назначать URL-адрес скрытой ссылке, чтобы вы могли ее щелкнуть. Есть гораздо больше прямых способов для перехода на новое место. – meagar
@usherjer Если вы хотите, чтобы он открывался на новой вкладке, используйте 'window.open'. Открывается ли это на вкладке или в новом окне, зависит от браузера, так как не все браузеры поддерживают вкладки. Невозможно специально настроить браузер для открытия ссылки на новой вкладке. – meagar