如何在特定的维基页面中使用脚本标签?

How to have a script tag in a particular wiki page?

如何在特定的 wiki 页面中添加标签?我知道可以在 Common.js 或 header 中使用宽 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 服务。有什么方法可以在维基页面中将此嵌入视频 link 作为 js?

aparat,或者也提供 iframe。如果无法在页面中使用上述脚本,如何在 wiki 页面中使用此 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>

您不能简单地将 HTML(包括 script 标签)嵌入 MediaWiki 页面。这是出于安全原因,因为任意用户都可以包含任何 JavaScript,甚至是不安全的,然后为所有用户执行。

在这种情况下,您最好的选择是 write your own extension, just like the EmbedVideo extension, which provides a parser tag。使用此解析器标签,您将能够由用户提供相关数据(似乎是视频 ID,19bwT?),其余脚本标签内容应该在扩展内部是静态的,在为了避免安全漏洞。

我上面链接的页面包含有关如何创建扩展的更多信息,以及用于创建解析器标记扩展的示例代码。我认为在这里提供扩展的完整实现完全超出了范围。但是,您也可以查看 embedvideo 扩展(您已经提到),尝试基于它创建一个新的,或者更好的是,扩展它以能够处理 apart

您可以使用 mw.config variable 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 好像坏了