gpt4 book ai didi

javascript - 将外部 JavaScript 添加到 MediaWiki 1.28

转载 作者:行者123 更新时间:2023-11-28 04:47:08 26 4
gpt4 key购买 nike

在我当前的 1.25.1 MediaWiki 设置中,我有很多外部 JavaScrip,如 bxslider、qtip、数据表等,通过一种非常侵入式的方式嵌入到 header 中。

我只是添加了

$out->addHeadItem('danalytics','<script src="https://aionpowerbook.com/bxslider/jquery.bxslider.min.js"></script><link href="https://aionpowerbook.com/bxslider/jquery.bxslider.css" rel="stylesheet" />
<script>
$(document).ready(function(){
$(\'.bxslider\').bxSlider({
captions: true,
auto: ($(".bxslider li").length > 1) ? true: false,
pager: ($(".bxslider li").length > 1) ? true: false,
speed: 6000,
infiniteLoop: true,
});});
$(document).ready(function(){
$(\'.bxslidermap\').bxSlider(
);});
</script>
');

然后将其余脚本放入 SkinMonoBook.php

$out->addStyle( $this->stylename . '/IE70Fixes.css', 'screen', 'IE 7' );

我知道我不应该接触核心文件,但它确实有效,而且我对此感到满意。

无论如何,最近我一直在尝试将 MediaWiki 软件更新到 1.28.0,但无论我如何尝试恢复所有 JavaScript,我都会得到

jQuery is not defined
$ is not defined

有时有效,有时无效。我不知道出了什么问题。

我尝试过这个: How to add external <script> to <head> section for all mediawiki pages?

没用。这是很明显的,因为 MediaWiki 的 jquery 是在底部加载的(我认为?),但即使在我的任何 JS 之前添加 jquery 库之后,它有时也只能工作。

我还使用 PageDisqus 扩展,所以我想我只需将外部 JavaScript 复制/粘贴到 PageDisqus 的代码中即可。该扩展还在每个页面上加载 javascrips,而且它似乎总是有效,所以我想为什么不呢。但同样,有时有效,有时无效。

这是一个例子:

https://aionpowerbook.com/pb_new/index.php?title=Main_Page

顶部的 slider 有时会加载,有时我需要进行硬刷新才能加载,但通常在一个浏览器上它可以工作,在另一个浏览器上我不断收到“ReferenceError:jQuery 未定义”。

这里我还尝试在其他任何事情之前添加我自己的jquery,但不,仍然得到

$(...).bxSlider 不是函数

不时。

任何帮助将不胜感激,因为我在这里没有想法。

最佳答案

从 MediaWiki 1.26 开始,所有 MediaWiki 的 JavaScript 都是异步加载的 [ 1 ];因此,如果您不通过 ResourceLoader 加载所有代码并声明依赖项,则无法保证 jQuery(或其他任何内容)在您加载代码时可用。这可能就是您的代码失败的原因。您可以尝试以下方法之一:

  1. 使用mw.loader.load()加载外部代码;我不确定这是否足够。
  2. MediaWiki:Common.js(wiki 内的页面)中加载您的代码。
  3. 在我看来,更好的方法是创建一个扩展来加载所有代码 - 将其中的各个部分声明为 ResourceLoader 模块并加载它们。正如@Tgr所说,请参阅https://www.mediawiki.org/wiki/ResourceLoader/Developing_with_ResourceLoader了解更多详情。

关于javascript - 将外部 JavaScript 添加到 MediaWiki 1.28,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com