在我當前的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