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

问题描述:

我目前正在研究基于Web的教育工具,学生可以在浏览器中查看代码示例并编辑浏览器中的代码。我一直试图实现一个系统,通过它们可以与客户端编译器进行交互,并在浏览器中运行/调试代码。我做的研究越多,浏览器的设计就越多,因为这会造成安全问题。我想知道是否有任何方法来在本地运行编译器,即通过扩展或ajax或其他方法。通过任何东西从浏览器启动客户端编译器

尽管我们已经开始使用python,但其目的是尽可能地适应多种语言。

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

+0

Python解释器在服务器端 http://www.udacity.com/view#Course/cs262/CourseRev/apr2012/Unit/3001/Nugget/47004 – SRN

+0

作为攻击者,我会对你可以这样做,因为我可以粘贴一个任意代码并让它在客户端编译并运行,而不受任何限制。 – nhahtdh

+0

这个想法是,学生是唯一一个有权访问文档栏的老师,它不是一个公开的论坛,任何人都可以发布任何内容,并且它可以运行在每个人的电脑上。我明白,涉及到很多潜在的安全风险,但我认为如果创建得当,它将没有更多的风险,即与svn链接的ide。 – user1473696

我需要为project of mine这样做(虽然不是编译器)。它必须下载并处理一个给定URL的资源,并将其格式化为可以在kindle上阅读的格式。它与你的不完全相似,因为我有一个浏览器插件(而不是网页),它触发了操作,甚至不允许“离开”浏览器。

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

的设置是这样的

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

浏览器发送的代码段(在你的情况,在我的URL)发送到Web应用程序,在本地机器监听某个端口上运行(比如9999 )。它可以访问本地资源,因此可以实际运行代码,然后将某些内容返回给可以呈现它的浏览器。

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

我不认为你可以编写一个直接访问编译器的插件。它必须与本地应用进行通信。非技术用户的设置非常复杂(查看我的项目上的自述文件),但它工作正常。

+0

这很漂亮:)。 因此,一个可能的解决方案是创建一个插件,当用户点击编译/运行时,插件将信息发送到桌面上运行的应用程序,然后访问并编译这段代码?还是你建议我创建一个插件,直接访问已安装的编译器并启动代码。 我在一个插件无法直接启动桌面应用程序的前提下运行。我有这个错误吗? – user1473696

+0

我已经更新了我的答案。 –