Twitter Встроенный обратный вызов шкалы времени
мы много занимались твиттеромВстроенные сроки. Я'мы пытались выяснить, возможно ли узнать, когда закончится загрузка временной шкалы, идисплеи на странице. этовопрос был запрошен, но еще не реализовано. Я зашел в тупик и надеюсь, что кто-нибудь сможет помочь мне найти решение. Вот что я нашел до сих пор:
Код для добавления встроенной временной шкалы:
<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-widget-id="YOUR- WIDGET-ID-HERE">Tweets by @twitterapi</a>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
Что происходит при запуске скрипта:
Скрипт заменяет<a></a>
пометить с элемент.
iframe
(такие как , ,onload
DOMContentLoaded
DOMFrameContentLoaded
и т. д.), чтобы узнать, когда контент закончил загрузку. Это десяткит работа, потому чтоiframe
не имеетsrc
приписывать. Пройдя через код uglified (я не смог найти несжатую версию), я предполагаю, что он использует записи для добавления содержимого в тело.iframe
Настройка слушателей событий, чтобы знать, когдаheight
изменения атрибута наiframe
, Теоретически это событие должно запускаться три раза: сначала при загрузке контента, затем приheight
установлен в 0, и третий, когдаheight
установлен, чтобы показать полностью загруженную временную шкалу. Тем не менее, я смог запустить событие только в первых двух случаях, а не в третьем (то, что я на самом деле хотел). Я использовал ,DOMSubtreeModified
onreadystatechange
, а такжеonpropertychange
, но толькоDOMSubtreeModified
работал для стрельбы события.Настройка прослушивателей событий на котентыiframe
, Потому что JavaScript может достичь внутриiframe
из Twitter можно получить любой элемент внутриiframe
(такие какdocument
или жеwindow
). Тем не менее, добавив,onload
DOMContentLoaded
, или жеDOMFrameContentLoaded
слушатели событий наwindow
или жеdocument
изiframe
до сих пор не срабатывает эти события.Настройка прослушивателей событий наследовать @username ' кнопка. Кнопка на самом делеiframe
это имеетsrc
приписывать. Установивonload
событие, оно будет запущено при загрузке. Тем не менееonload
событие всегда будет срабатывать дважды. Первый раз, когда он закончил загрузку, и второй, когда он закончил обработку. Сразу после второго запуска будет показана временная шкала. Для реализации этого достаточно взломать (я думаю, все так), так как вы должны ждать содержимоеiframe
загрузить, добраться внутрь и получитьследовать @username ' iframe
установитьonload
событие на нем, затем подождите, пока не сработает второе событие.С использованиемtwttr.widgets.createTimeline()
функция, которая имеет необязательный параметр для обратного вызова. Однако обратный вызов вызывается, когда контент готов (шаг 2), но не тогда, когда iframe виден (шаг 4).Там's, вероятно, еще несколько комбинаций, которые я забыл на данный момент. Я знаю, что существуетGithub Gist который использует твиттерwidget.js
, но добавляет обратные вызовы к нему. Я не смог заставить это работать.
Извините за вопрос журнала, но я надеюсь, что кто-то может помочь. Благодарю.