我管理一个运行MediaWiki 1.29的wiki站点,我在页面上崩溃TOC时遇到了问题。
我希望保留“内容”框,但默认情况下,使用它加载页面时会出现折叠。
这里似乎有一个简单的解决方案,https://www.mediawiki.org/wiki/Manual_谈话:桌子_的_contents#Improved_解决方案,但是我没有实现它,我不知道错误在哪里,希望有人能帮上忙。
我将代码集成在一起,并检查站点是否使用了MediaWiki:Common.js。
在页面呈现期间,我检查了Java代码的加载和执行,但是它似乎失败了,因为
ReferenceError: toggleToc is not defined我还检查了这个页面https://www.mediawiki.org/wiki/ResourceLoader/Migration_指南_(用户)#MediaWiki_1.29,但是在表中有一个空单元格,应该解释如何迁移toggleToc();。我甚至不确定它是否应该迁移。
如对此专题有任何帮助,我们将不胜感激。
谢谢
卢卡
发布于 2018-02-23 10:25:50
在咨询了MediaWiki支持台之后,我终于确认,该函数列在表中,如何在列中没有文本替换为该函数被永久删除的情况下迁移。
在我看来,这一点没有得到明确的解释。
所以这个函数不能再被开箱即用了。
对于对此函数感兴趣的人,可以在比版本1.29更早的MediaWiki包中找到源代码。
函数被写入文件中。
\resources\src\mediawiki\mediawiki.toc.js我希望这能帮助其他人解决问题。
发布于 2018-02-18 21:17:34
在上面提供的媒体wiki链接中,它解释了需要实现以下代码:
// The enclosed code runs only after the page has been loaded and parsed.
window.addEventListener('DOMContentLoaded', function() {
try {
// Detect whether the page's TOC is being displayed.
if (document.getElementById('toc').getElementsByTagName('ul')[0].style.display != 'none') {
// Use MW's toggleToc() to hide TOC, change "hide/show" link text, and set cookie.
toggleToc();
}
} catch (exception) {
// Probably this page doesn't have a TOC, ignore the exception to prevent console clutter.
}
}, false);如果您已经在您的网站上实现了上述代码,并且该代码没有正常运行,我对上述代码的最佳理解如下:
`window.addEventListener('DOMContentLoaded‘),它侦听要加载的页面内容,然后执行以下功能
如果(document.getElementById('toc').getElementsByTagName('ul')0.style.display != 'none') { toggleToc();如果name="toc“中的元素未设置为显示:none,则执行"toggleToc”函数
首先,必须确保name="toc“定义的元素没有设置为display:none。然后,您必须确保页面或.js文件中的某个位置设置了函数toggleToc。如果尚未设置或定义toggleToc,则必须自己编写此代码,或在线查找代码并在页面或.js文件中实现它。
由于您已经收到了以下通知: ReferenceError: toggleToc未定义,我的最佳猜测是,您实际上在任何.js文件中或在网页中都没有函数toggleToc。我会检查一下,以确保它在那里。
希望我能帮到你。
https://webmasters.stackexchange.com/questions/112886
复制相似问题