【发布时间】:2015-02-18 19:41:22
【问题描述】:
Marvin JS(从http://dl.chemaxon.com/marvinjs/15.2.16/marvinjs-15.2.16-all.zip 下载)是一个基于 JavaScript 的化学结构编辑程序,我希望能够将它嵌入到我本地服务器上的 MediaWiki 文章中。我已经阅读了https://www.mediawiki.org/wiki/Manual:Developing_extensions,但我对 PHP 的理解非常初级,所以它并不是特别有用。
我想要这样一个扩展来创建以下解析器扩展标签:
<marvin src = URL width = W height = H></marvin>
其中 URL 是 Marvin JS 程序正在加载的文件的位置(在本地服务器上),W 是小程序的宽度,H 是它的高度。
我迄今为止通过其他方式将 Marvin JS 添加到文章中的努力
我已经看到了几个如何将这个小程序嵌入 HTML 页面的示例,并且我知道,由于我缺乏 PHP 知识,编写扩展程序对我来说非常困难,我确实尝试将这个小程序作为一个小部件嵌入,并通过AddScriptCss 扩展,两者都让我失望了。
AddScriptCss
对于我添加的扩展安装后的AddScriptCss:
<addScript src = "Marvin/js/lib/jquery-1.9.1.min.js"></addScript>
<addScript src="Marvin/js/lib/rainbow/rainbow-custom.min.js"></addScript>
<addScript src="Marvin/gui/lib/promise-0.1.1.min.js"></addScript>
<addScript src="Marvin/js/marvinjslauncher.js"></addScript>
到一篇文章并在我保存后在页面上收到此输出:
UNIQ5d2750bb5e9527b2-addScript-00000004-QINU UNIQ5d2750bb5e9527b2-addScript-00000005-QINU UNIQ5d2750bb5e9527b2-addScript-00000006-QINU UNIQ5d2750bb5e9527b2-addScript-00000007-QINU
将 URL 的其余部分添加到 src 字段(例如,http://127.0.0.1/mediawiki/)似乎无法解决此问题。打开“开发者工具”(我使用的是 Chrome)显示两个错误:
Uncaught SyntaxError: Unexpected string (@ index.php line 154. Which is a WikEd line)
http://ads.dfgio.com/loader.js?client=topaz0001 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
我也看到了这个Mediawiki Extension add Javascript in Header stackoverflow 问题,所以我尝试按照第二个答案 (Mediawiki Extension add Javascript in Header) 并在将 script 替换为 addHeadItem 并保存页面后,我剩下的只是我原来的 wikitext,除了 URL超链接。
小部件
就小部件而言,我尝试添加:
<includeonly><script type = "text/javascript" src="http://127.0.0.1/mediawiki/Marvin/gui/lib/promise-0.1.1.min.js"></script>
<script type = "text/javascript" src="http://127.0.0.1/mediawiki/Marvin/js/marvinjslauncher.js"></script></includeonly>
到 Widget:Marvin,然后我将 {{#widget:Marvin}} 添加到一个没有结果的页面中(字面意思;当我在保存此编辑后加载页面时,那里什么都没有)。这是一个屏幕截图,显示了在此页面上打开开发人员工具时出现的屏幕。
【问题讨论】:
标签: javascript mediawiki mediawiki-extensions