MediaWiki:Common.js: различия между версиями

Не работает, зараза, а если так, урезать по максимуму?
С ембедом
Строка 122: Строка 122:


/* Функция для вставки Rutube-видео на страницу для шаблона Rutube, простая версия */
/* Функция для вставки Rutube-видео на страницу для шаблона Rutube, простая версия */
document.addEventListener('DOMContentLoaded', function() {
(function() {
     var players = document.querySelectorAll('.rutube-player');
     'use strict';
      
      
     players.forEach(function(player) {
     function initRutubePlayers() {
         var videoId = player.getAttribute('data-video-id');
         var players = document.querySelectorAll('.rutube-player[data-video-id]');
        var width = player.getAttribute('data-width') || '560';
        var height = player.getAttribute('data-height') || '315';
          
          
         if (videoId) {
         players.forEach(function(player) {
             var iframe = document.createElement('iframe');
             if (player.classList.contains('rutube-processed')) return;
            iframe.src = 'https://rutube.ru/play/embed/' + videoId;
            iframe.width = width;
            iframe.height = height;
            iframe.frameBorder = '0';
            iframe.allow = 'autoplay; fullscreen; picture-in-picture';
            iframe.allowFullscreen = true;
            iframe.style.border = 'none';
            iframe.style.display = 'block';
              
              
             player.appendChild(iframe);
             var videoId = player.getAttribute('data-video-id');
         }
            var width = player.getAttribute('data-width') || '560';
     });
            var height = player.getAttribute('data-height') || '315';
});
           
            if (videoId) {
                var iframe = document.createElement('iframe');
                iframe.src = 'https://rutube.ru/play/embed/' + videoId + '?p=Ib&brandPlayerUrl=';
                iframe.width = width;
                iframe.height = height;
                iframe.frameBorder = '0';
                iframe.allow = 'autoplay; encrypted-media; fullscreen; picture-in-picture';
                iframe.allowFullscreen = true;
                iframe.referrerPolicy = 'no-referrer-when-downgrade';
               
                iframe.style.border = 'none';
                iframe.style.display = 'block';
                iframe.style.maxWidth = '100%';
               
                player.innerHTML = '';
                player.appendChild(iframe);
                player.classList.add('rutube-processed');
            }
        });
    }
   
  /*  Запускаем при полной загрузке DOM */
    if (document.readyState === 'loading') {
         document.addEventListener('DOMContentLoaded', initRutubePlayers);
    } else {
        initRutubePlayers();
     }
   
  /* Также запускаем при динамической загрузке контента
    if (typeof mw !== 'undefined' && mw.hook) {
        mw.hook('wikipage.content').add(initRutubePlayers);
    }
   
})();