Максим Ленский, плохо дело, если вы не умеете гуглить, то работа в IT вам противопоказана. Я сейчас не шучу, а реально в серьез говорю - без уменя гуглить по поводу и без в IT лучше даже не лезть.
Zettabyte, adguard + adguard extra нормально блочит, но зараза он плохо работает именно под Opera. Под хромом отлично блокирует, а вот под Opera уже нифига. Вот и ищу решение под Opera.
Сергей Соколов, тоже верно. Тут вижу 2 решения, использовать небольшой таймаут, либо использовать не слушатели кликов, а MutationObserver, чтобы видеть уже фактиечские изменения.
Егор Довыденко, никак. JavaScript НЕ позволяет обращаться к произвольным чужим сайтам. Вам нужно обращаться к своему сайту (серверу), чтобы тот за вас скачал файл и отдал вам его в браузер. Поэтому вам нужно писать скачивающий скрипт именно на стороне вашего сервера, а не браузера. В отличии от браузера, сервер может обратится куда угодно и как вам угодно.
Александр Петров, нужно чтобы проткол домен и порт совпадали, тогда можно делать запросы. Если сочетание протокол домен и порт разные, то вам будет мешать CORS.
WbICHA, ну да, предполагается что функция асинхронная, если результат не сразу отдает) Вариант с промисами я пока и использую как основной, но если вдруг пойму, что можно сделать лучше, перепишу.
Александр, хм, интересно, завести массив чтобы собирать колбеки, а когда будет результат запустить все колбеки разом. Только pending у нас же локальная переменная, разве так оно заработает корректно?
P. S. Хотя нет, смотрю я щас, это не совсем то, чего хочу. Поторопился.
Цель же у меня следующая. Хочу, чтобы все последующие запуски функции давал результат самого первого запуска, но только в том случае если функция уже запущена и сейчас работает. То есть если есть работающий сейчас экземпляр функции мы не вызываем функцию снова, а просто берем результат этого самого работающего экземпляра, когда он будет готов.
Сори, не могу осознать ваш код, у меня проблемы с новым стилем)
Цель же у меня следующая. Хочу, чтобы все последующие запуски функции давал результат самого первого запуска, но только в том случае если функция уже запущена и сейчас работает. То есть если есть работающий сейчас экземпляр функции мы не вызываем функцию снова, а просто берем результат этого самого работающего экземпляра, когда он будет готов.
Как сделать это на промисах я знаю, но может есть еще способы?
Можно, так как jQuery как раз очень часто используется для динамической подгруздки контента. Да и новичку он может показаться проще и понятнее, чем нативный JavaScript.