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