Как добавить тег скрипта на определенную вики-страницу? - PullRequest
0 голосов
/ 04 апреля 2020

Как я могу иметь тег на определенной странице вики? Я знаю, что это может иметь широкий js в общем. js или в заголовке. Но мне нужно иметь его в источнике страницы, чтобы вставить видео. Как это можно? Тег такой:

<div id="15897897929"><script type="text/JavaScript" src="https://www.aparat.com/embed/19bwT?data[rnddiv]=15897897929&data[responsive]=yes"></script></div>

Mediawiki имеет расширение EmbedVideo, но не поддерживает этот сервис aparat. Есть ли способ добавить ссылку на видео для вставки в виде js на вики-странице?

апарат, в качестве альтернативы также укажите iframe. Если невозможно разместить вышеупомянутый скрипт на странице, как использовать этот iframe на вики-странице?

<style>.h_iframe-aparat_embed_frame{position:relative;}.h_iframe-aparat_embed_frame .ratio{display:block;width:100%;height:auto;}.h_iframe-aparat_embed_frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;}</style><div class="h_iframe-aparat_embed_frame"><span style="display: block;padding-top: 57%"></span><iframe src="https://www.aparat.com/video/video/embed/videohash/19bwT/vt/frame" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe></div>

Ответы [ 2 ]

2 голосов
/ 05 апреля 2020

Вы не можете просто вставить HTML (включая тег script) на страницу MediaWiki. Это делается из соображений безопасности, поскольку произвольные пользователи могут включить любой JavaScript, даже небезопасный, который затем выполняется для всех пользователей.

Лучшая ставка в этом случае здесь - напишите свое собственное расширение , такое же как расширение EmbedVideo, которое предоставляет тег parser . С помощью этого тега синтаксического анализатора вы сможете предоставить пользователю соответствующие данные (которые, по-видимому, являются идентификатором видео, 19bwT?), Остальное содержимое тегов сценария должно находиться внутри c внутри расширения, во избежание безопасности fl aws.

На странице, на которую я ссылался выше, содержится дополнительная информация о том, как создать расширение, а также пример кода для создания расширения тега анализатора. Я думаю, что было бы совершенно нецелесообразно предоставлять полную реализацию здесь. Однако вы также можете взглянуть на расширение embedvideo (о котором вы уже упоминали), попытаться создать новое на его основе или, что еще лучше, расширить его, чтобы можно было обрабатывать apart.

0 голосов
/ 05 апреля 2020

Вы можете использовать переменную mw.config wgPageName , чтобы ограничить вашу функцию в Common. js конкретным именем страницы (в этом примере Bar)

if ( mw.config.get( 'wgPageName' ) === "Bar") {
    $.getScript("https://www.aparat.com/embed/19bwT?data[rnddiv]=15897897929&data[responsive]=yes", function() {
        console.log("Script loaded but not necessarily executed.");
    });
}

PS https://www.aparat.com/embed/19bwT?data[rnddiv]=15897897929&data[responsive]=yes кажется сломанным

...