通过任何东西从浏览器启动客户端编译器

时间:2012-06-22 04:41:06

标签: python html compiler-construction cross-browser

我目前正在开发一个基于网络的教育工具,学生可以在浏览器中查看代码示例并在浏览器中编辑代码。我一直在尝试实现一个系统,通过它们可以与客户端编译器连接并在浏览器中运行/调试代码。我做的研究越多,我就越发现浏览器的设计是为了防止这种情况发生,因为这会产生安全问题。我想知道有没有办法在本地运行编译器,即通过扩展或ajax或其他方法。

尽管我们开始使用python,但目标是尽可能多地使用语言。

我知道我可以运行脚本服务器端并显示输出但是这在应用程序中是有限的(据我所知),特别是关于GUI。

1 个答案:

答案 0 :(得分:0)

我需要为project of mine执行类似的操作(尽管不是编译器)。它必须下载并处理资源,并将其URL设置为可以在kindle上读取的格式。它与你的不完全相似,因为我有一个触发操作的浏览器插件(而不是网页),甚至不允许“离开”浏览器。

最后,我被迫编写了一个在客户端运行的小应用程序,该插件将URL提交给然后进行处理。

设置就像这样

browser plugin (via ajax) <------> web app on client ----> compiler/etc.

浏览器将代码片段(在您的情况下,我的URL中)发送到在本地计算机上运行的Web应用程序(在9999上)。它可以访问本地资源,因此可以实际运行代码,然后将某些内容返回给浏览器,然后浏览器可以呈现它。

在我的例子中,浏览器将JSON字符串发送到仅包含URL的Web应用程序。 Web应用程序获取资源,对其进行处理并将其转换为.mobi文件,kindle可以读取该文件,然后将其放入目录中。转换(成功/失败)的结果和转换后的文件的位置将被发送回浏览器,通知您已完成。

我认为你不能写一个直接访问编译器的插件。它必须与本地应用程序通信。对于非技术用户来说,设置很复杂(查看我项目的自述文件),但它有效。