embedResize.js 799 B

1234567891011121314151617181920212223242526
  1. (function() {
  2. var embedElement = document.querySelector('.tweet-embed, .embed-video');
  3. if (!embedElement) return;
  4. var lastHeight = 0;
  5. function sendHeight() {
  6. var currentHeight = embedElement.offsetHeight;
  7. if (currentHeight !== lastHeight) {
  8. lastHeight = currentHeight;
  9. window.parent.postMessage(['resizeIframe', { h: currentHeight, url: location.href }], '*');
  10. }
  11. }
  12. // Respond to height requests from parent via MessageChannel
  13. window.addEventListener('message', function(event) {
  14. if (event.source === window.parent && event.ports && event.ports[0]) {
  15. event.ports[0].postMessage(embedElement.offsetHeight);
  16. }
  17. });
  18. window.addEventListener('load', sendHeight);
  19. new ResizeObserver(sendHeight).observe(embedElement);
  20. return sendHeight;
  21. })()