У меня есть кусок JavaScript, который динамически создает тег A
внутри существующего div и затем вызывает на нем функцию jQuery "click". Это работает как во всех браузерах, кроме Safari.
Safari возвращает следующую ошибку:
'undefined' не является функцией (оценивая '$ ('. shell a ') [0].click()')
Любые идеи о том, что я делаю неправильно или почему это не работает в Safari и как заставить его работать (или один кусок кода, который работает во всех браузерах), я попытался использовать .trigger("click")
, а также и он дает ту же ошибку.
JavaScript
function writeAndClickLink(url) {
$('.shell').html('<a href="' + url + '"></a>');
$('.shell a')[0].click();
}
и в HTML:
<div class="shell"></div>
Причина, по которой я делаю это, это странный способ - это функция вызывается с сайта Flash, чтобы открыть окно Twitter, где я даю награду за твитирование. Это до сих пор было единственным способом, с помощью которого я мог связать событие "твит" с окном. Если я открою окно любым другим способом (например, window.open), он не фиксирует связанное событие, которое позволяет мне знать, что они действительно завершили твит.
Поток выглядит примерно так:
- Пользователь щелкает кнопку твиттера во флэш-памяти
- Flash вызывает функцию javascript для динамической записи href и "click" it
- Открывается окно Twitter.
- Пользователь успешно выполняет твиты
- Событие, записанное в твиттере, фиксируется и обновляется с успехом.
- Содержимое разблокировано во флэш-памяти