在我当前的1.25.1 MediaWiki安装中,我通过非常侵入性的方式将很多外部JavaScrips(如bxslider,qtip,datatables等)嵌入标头中。将外部JavaScript添加到MediaWiki 1.28
我只是简单地添加
$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
在顶部只是偶尔负载滑块,有时我需要做一个硬刷新,使其负载,但通常在一个浏览器,它的工作原理,另一个我继续收到“ReferenceError:未定义jQuery”。
在这里我也想加入我自己的jQuery的任何事情之前,但没了,仍然得到
$(...)。bxSlider不是一个函数
不时。
任何帮助将不胜感激,因为我在这里没有想法。
请参阅https://www.mediawiki.org/wiki/ResourceLoader/Developing_with_ResourceLoader – Tgr