MediaWiki:Common.js: различия между версиями
валидация рутуба |
переписывание на более безопасный вариант |
||
| Строка 78: | Строка 78: | ||
/* Функция для вставки VK-видео на страницу для шаблона VKVideo, простая версия */ | /* Функция для вставки VK-видео на страницу для шаблона VKVideo, простая версия */ | ||
(function() { | |||
'use strict'; | |||
var containers = document.querySelectorAll('.vk-video-js' | function initVKVideo() { | ||
var containers = document.querySelectorAll('.vk-video-js'); | |||
for (var i = 0; i < containers.length; i++) { | |||
var | var container = containers[i]; | ||
var oid = container.getAttribute('data-oid'); | |||
var id = container.getAttribute('data-id'); | |||
var width = container.getAttribute('data-width') || '560'; | |||
var height = container.getAttribute('data-height') || '315'; | |||
if (oid && id && oid !== 'null' && id !== 'null' && | |||
/^[-_a-zA-Z0-9]+$/.test(oid) && /^[-_a-zA-Z0-9]+$/.test(id)) { | |||
var iframe = document.createElement('iframe'); | |||
iframe.src = 'https://vk.com/video_ext.php?oid=' + encodeURIComponent(oid) + '&id=' + encodeURIComponent(id); | |||
iframe.width = width; | |||
iframe.height = height; | |||
iframe.frameBorder = '0'; | |||
iframe.allowFullscreen = true; | |||
iframe.style.border = 'none'; | |||
while (container.firstChild) { | |||
container.removeChild(container.firstChild); | |||
} | |||
container.appendChild(iframe); | |||
} else { | |||
var errorDiv = document.createElement('div'); | |||
errorDiv.style.cssText = 'color: red; padding: 10px; text-align: center; border: 1px solid red;'; | |||
errorDiv.textContent = 'Ошибка: неверные параметры видео'; | |||
while (container.firstChild) { | |||
container.removeChild(container.firstChild); | |||
} | |||
container.appendChild(errorDiv); | |||
} | |||
} | } | ||
} | } | ||
if (document.readyState === 'loading') { | |||
if (document.readyState === 'loading') { | document.addEventListener('DOMContentLoaded', initVKVideo); | ||
} else { | |||
} else { | initVKVideo(); | ||
} | |||
} | })(); | ||