Javascript в MediaWiki
Я хотел бы использовать Javascript на своих Вики-страницах, но я не смог понять, как это сделать. Я использую размещенное решение на Wikia. Поэтому я не могу изменить установку, добавить расширения или взломать настройки. Но у меня есть права администратора на моей Вики, поэтому я могу получить доступ к MediaWiki
пространство имен и MediaWiki:Common.js
.
javascript, который я хочу использовать (клубок) будет состоять из внешнего скрипта, который будет общим для нескольких страниц(но не все страницы wiki) и некоторый код, который будет специфичен для каждой страницы, такой, который вы обычно помещаете в <script>
тег.
беда в том, что Mediawiki дезинфицирует <script>
теги, и я не смог найти способ их вставить. Я пытаюсь сделать это удобной для редактора настройкой, которая будет использоваться во всей Вики, поэтому я также пытаюсь избежать хаков и найти правильное решение.
обновление: новая проблема
видимо MediaWiki также санирует Атрибуты данных HTML5, на которые сильно полагается клубок. Любые идеи по решению этой проблемы приветствуются.
1 ответов
MediaWiki не позволяет <script>
теги на страницах по очевидным причинам: если это так, любой может использовать их для внедрения JavaScript в вашу Вики и, например, украсть учетные данные.
есть несколько вещей, которые вы мог бы do:
напишите некоторый общий код JavaScript, чтобы извлечь параметры из чего-то, что is разрешено на страницах MediaWiki, таких как скрытый
<div>
. Будьте осторожны, чтобы не вводить отверстия безопасности, когда делающий это.-
добавьте что-то вроде этого в MediaWiki:Common.js:
importScript('MediaWiki:Tangle/' + wgPageName + '.js');
затем, когда пользователь посещает страницу "Foo", страница " MediaWiki:Tangle/Foo.js " будет загружен как JavaScript. Конечно, эта страница будет редактироваться только администраторами, но этого может быть достаточно для ваших нужд. (Вы можете использовать тот же трюк для импорта JS со страниц в других пространствах имен, но это откроет дыру безопасности шириной в мили.)