【问题标题】:How to have a script tag in a particular wiki page?如何在特定的 wiki 页面中有一个脚本标签?
【发布时间】:2020-04-04 20:52:33
【问题描述】:

如何在特定的 wiki 页面中添加标签?我知道在 Common.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 嵌入到 wiki 页面中?

aparat,或者也提供 iframe。如果无法将上面的脚本放在页面中,如何将这个 iframe 放在 wiki 页面中?

<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>

【问题讨论】:

    标签: javascript mediawiki wiki mediawiki-api mediawiki-extensions


    【解决方案1】:

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

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

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

    【讨论】:

    • 呃,对我不利。这是我不知道的!有人可以自愿在这里帮忙吗? @弗洛里安
    • 您可以在 phabricator.wikimedia.orga 上打开一个工单,获得 EmbedVideo 扩展,并希望维护人员能够处理它。或者,应该有一个标签“新的扩展请求”,您可以在其中请求新的扩展。但是,我不确定,如果会有很多志愿者,至少我什至不知道“分开”作为一个平台。但是试一试。 MediaWiki 也有顾问,您可以尝试找到一位为您开发扩展程序的人。请参阅m.mediawiki.org/wiki/Professional_development_and_consulting 作为起点。
    【解决方案2】:

    您可以使用 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&amp;data[responsive]=yes 好像坏了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 2012-06-20
      • 1970-01-01
      • 2018-08-17
      • 2015-01-29
      • 1970-01-01
      • 2013-09-01
      • 2021-01-21
      相关资源
      最近更新 更多