Вграждане на Twitter (с wordpress) и зареждане?

Искам да знам кога е зареден туит. Имам такъв вид публикация http://pego-design.com/remarky-brisi/media-twitter-embeds/ или тук http://en.support.wordpress.com/twitter/twitter-embeds/ и бих искал да знам височината на странния iframe, създаден от този код:

<div class="entry-content">
<blockquote class="twitter-tweet" width="550"><p>Really cool to read through and find so much awesomeness added to WordPress 3.6 while I was gone. I should take three weeks off more often.</p>
<p>&mdash; Andrew Nacin (@nacin) <a href="https://twitter.com/nacin/status/319508408669708289">April 3, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>

грозно с js демонстрация: http://jsfiddle.net/qWHc5/2/

Ако проверите тази демонстрация, можете да видите първия и крайния размер на iframe (93,213,213,213… или 93,93,93,213,213…), трябва да знам как да получа последната стойност без грозно решение.

Опитвам това Как мога да разбера дали iframe е зареден? но не работи...

АКТУАЛИЗАЦИЯ: Намерих тази версия на widgets.js https://gist.github.com/johan/4479186 с обратни извиквания, които не знам как да използвам, като това window.twttr.tfw.callbacks.cb0.


person benoît    schedule 17.06.2013    source източник


Отговори (2)


WordPress използва oEmbed, за да включи twitter сред други.
Можете да намерите кода, който прави това на wp-includes/class-oembed.php

За да му повлияете, използвайте:

function so_17151843_embed ( $provider, $url, $args ) {
  // check $provider if it is twitter
  // change url values to what you want
  $url = add_query_arg( 'maxheight', $url )

  return $url;
}
add_filter( 'oembed_fetch_url', 'so_17151843_embed' );

Можете да поставите това във вас funtions.php.
Това трябва да ви помогне по пътя.

person janw    schedule 28.06.2013
comment
shortanwser, не. Защо се опитвате да направите това в js? php е по-безопасен за това. Има ли конкретна причина да използвате js? - person janw; 28.06.2013
comment
как php може да получи крайната височина? Правя актуализация: jsfiddle.net/qWHc5/1 - person benoît; 28.06.2013
comment
Не те разбирам, защо показваш този html. Ако поставите туит в редактора на WordPress, той автоматично ще го вгради. Ето за това помага моят пример. - person janw; 29.06.2013
comment
Когато говоря за зареждане, трябва да знам крайната височина на генерирания iframe. Маркирах WordPress, защото кодът се генерира от WordPress, но това е js въпрос. - person benoît; 29.06.2013
comment
искате да знаете височината на генерирания iframe? Можете просто да получите това с jQuery съвсем просто. Така че предполагам, че има нещо повече... - person janw; 29.06.2013
comment
Мога ли да попитам защо ви е нужен този рицар? - person janw; 30.06.2013
comment
Работя върху разширена мрежа и трябва да разбера това за моите знания, любопитен съм. - person benoît; 30.06.2013
comment
Намерих нещо, използващо обратно извикване в twitter widget.js jsfiddle.net/qWHc5/5, което е най-доброто, което мога мога да направя… - person benoît; 01.07.2013

Ето правилния начин да проверите кога Twitter е готов:

if (window.twttr !== undefined) {
    window.twttr.ready(function(){
        console.log("Twitter ready!");
    });
};

Късен отговор, но се надявам това да помогне на бъдещите потребители!

person punkbit    schedule 06.10.2013
comment
Благодаря ти ! ще го пробвам - person benoît; 07.10.2013
comment
Не е добре, вижте моя jsfiddle… jsfiddle.net/qWHc5/1 и вашия код jsfiddle.net/qWHc5/10 - person benoît; 07.10.2013
comment
Да, как би работило това в случая twttr == undefined - както преди зареждането на widgets.js? Няма да стане и това е смисълът на Q. - person Julian; 13.11.2014
comment
@Julian кодът по-горе работи, за да провери кога туитът е зареден. Сега въз основа на вашата реализация, вашите widgetsjs, когато се заредят, трябва да имат функция за обратно извикване. Зависи изцяло от вашето внедряване. - person punkbit; 13.11.2014
comment
@punkbit, благодаря. Моята реализация е разширение за chrome, което иска да се събуди, когато на страницата с него има туит. Той не създава туит или не зарежда widgets.js, така че няма добър начин да прикачите onload към тага на скрипта. Търсите нещо като window.addEventListener('twitter', ..). Засега избирам да видя кога е дефиниран twttr, но това е грозно. - person Julian; 13.11.2014