В настоящее время я конвертирую сделанное мной расширение для MW 1.16 в 1.18. Это расширение использует JavaScript для изменения интерфейса страницы.
Таким образом, я использую загрузчик ресурсов следующим образом для загрузки моих разных сценариев:
$commDictResourceTemplate = array(
'localBasePath' => dirname( __FILE__ ) . '/modules',
'remoteExtPath' => 'CommunityDictionary/modules',
);
$wgResourceModules += array(
'ext.CommunityDictionary.jsAndCss' => $commDictResourceTemplate + array(
'scripts' => array('jquery.dataTables.min.js','jquery.jeditable.mini.js','jquery.dataTables.editable.js'),
'styles' => array('custom-theme/jquery-ui-1.8.16.custom.css'),
'dependencies' => array('jquery.ui.dialog'),
) ,
'ext.CommunityDictionary.dictPage' => $commDictResourceTemplate + array(
'scripts' => array('commDict.include.js','commDict.js'),
'styles' => array('commDict.css'),
'dependencies' => array('ext.CommunityDictionary.jsAndCss')
)
);
Вот commDict.js
:
var oTable;
var jDict;
$(loadDictPage);
function loadDictPage(){
jDict = $($.parseXML(xmlInput));
initDataTable()
initEditable();
initDelete();
initLanguageDialog();
}
commdict.include.js
содержит все функции инициализации, вызванные выше, а также множество других функций, которые связаны с click
событиями в интерфейсе. Связанная функция определяется следующим образом:
$('#langBtn').click(function(){
selectLanguages();
});
selectLanguages
определяется следующим образом:
function selectLanguages(){
$('#selectLanguageDialog').dialog('open');
}
Вот ошибка, которую я получаю:
Uncaught ReferenceError: selectLanguages is not defined
Когда я тестирую свою страницу в режиме debug
, все нормально, но когда я тестирую в режиме без отладки, движок javascript не устраивает и говорит мне, что моя функция не определена, даже если она присутствует в сценарии mimified генерируется загрузчиком ресурсов. Я предполагаю, что загрузчик ресурсов не видит функции щелчка, которые связаны только после анализа страницы, но я не знаю, как это исправить. Есть ли способ явно указать загрузчику загрузить определенные функции?
Кто-нибудь знает, что здесь происходит?