你不能直接这样做,因为 JS 运行在客户端,Lua 运行在服务器上。您可以做的是使用JS 中的 MediaWiki API来调用模块。具体使用APIexpandtemplates
模块。
例如,如果您想使用参数(在 wikitext 中)和结果h2d
从Module:Hex调用函数,那么 JS 将如下所示:FF
{{#invoke:hex|h2d|FF}}
alert
var api = new mw.Api();
api.get( {
action: 'expandtemplates',
text: '{{#invoke:hex|h2d|FF}}'
} ).done ( function ( data ) {
alert(data.expandtemplates['*']);
} );
对于 OP 的具体情况,在英语维基词典上运行:
var langName = 'Esperanto';
(new mw.Api()).get({
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
text: '{{#invoke:languages/templates|getByCanonicalName|' + langName + '|getCode}}'
}).done(function(data) {
alert('Language name: ' + langName + '\nLanguage code: ' + data.expandtemplates.wikitext);
});
(prop: 'wikitext'
避免来自 API 的警告,并让您访问结果data.expandtemplates.wikitext
而不是稍微神秘data.expandtemplates['*']
。否则没有区别。)