【问题标题】:MediaWiki fails executing JavaScript which gets executed fine in browser consoleMediaWiki 无法执行在浏览器控制台中执行良好的 JavaScript
【发布时间】:2019-08-24 12:45:51
【问题描述】:

以下全局 JavaScript 代码是我在整个全核、希伯来语、MediaWiki 1.33.0 网站中使用的唯一 JavaScript 代码:

/* כל הסקריפטים הנכתבים כאן ייטענו עבור כל המשתמשים בכל טעינת עמוד. */

const list = document.querySelector("#footnotes_list");
document.querySelectorAll(".footnote>sup").forEach((footnote, i) => {
    const li = document.createElement("li");
    li.append(...footnote.childNodes); // move content
    list.appendChild(li);
    footnote.textContent = i+1;
});

相关模板

以上 JavaScript 代码与以下两个模板相关。
以下希伯来语模板名称分别表示“脚注”和“脚注”:

תבנית:הערה

<p><span class="footnote"><sup>{{{1}}}</sup></span></p><noinclude>
[[קטגוריה:תבניות עריכה]]
</noinclude>

תבנית:הערות שוליים

<ol id="footnotes_list"></ol><noinclude>
[[קטגוריה:תבניות עריכה]]
</noinclude>

目的

此 HTML-WIKI-JavaScript 组合可作为常见参考扩展的潜在替代品,因为它允许每个脚注显示在脚注部分中。
我认为它对于希望避免安装任何扩展或皮肤的人来说应该很有用出于各种原因,例如降低 PHP 复杂性的愿望、极简主义哲学、个人舒适度等等。

我的问题

如果我尝试从浏览器控制台执行 JavaScript 代码,它可以正常工作 --- 插入文章正文的每个脚注都会在“脚注”ol 章节下(分别)排序。

但是,如果我尝试从 @987654321@ 执行该 JavaScript 代码,它就不起作用;用 CTRL+F5 清除 Chrome 缓存没有帮助。

我的问题

是什么导致 MediaWiki 无法运行 JavaScript 代码,如何解决?


旁注:developing the utilized JavaScript 归功于 user:trincot。

【问题讨论】:

  • MW社区匿名用户说:MW validates user scripts as ES3, so you can't use modern syntax features like const or array spreading.
  • 确实,这会破坏压缩器。您应该会在控制台上看到一条错误消息。

标签: javascript html global mediawiki wiki


【解决方案1】:

在我看来,MediaWiki 目前的最新版本 (1.33.0) 据称是 can only execute ES3

This session - question and accepted answer details more and include a solution.

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多