2009-11-15 106 views
2

我正在开发一个Web应用程序。 我想扩展我的错误信息(和他们的回溯),以便我可以点击提到的文件,并让它在我的PHP IDE中自动打开。从Firefox执行本地文件的最简单方法是什么?

我想使这是一个易于激活功能,使任何人在Web应用程序的工作原理,可以很容易地映射错误消息指向其本地网站的拷贝,并打开他们的IDE。

什么 - 短开发自定义FF扩展 - 是你能想到的就点击在Firefox在Windows(7)执行本地命令(即调用IDE一个批处理文件)最简单的方法? 我已经寻找扩展,但没有运气。也许使用另一个扩展名如Firebug或Greasemonkey?

安全不是一个问题,因为这被认为只有开发者的工作站上工作,我可以改变我的本地Firefox的设置。

回答

4

您可以添加一个新的协议(如 “编辑://”)到窗口(http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx)并编写一个小的处理程序程序,从“edit://”url中选择一个文件名并将该文件传递给编辑器。通过这种方式,我教会了Windows以我Mac的方式了解txmt链接(http://blog.macromates.com/2007/the-textmate-url-scheme/)。

+0

有趣的是,我看到一个提示,但它没有马上工作,我想也许它仅限于某个操作系统。我会再试一次。这样做会很棒,因为它将独立于浏览器,并且如果正确执行,安全隐患很小。 – 2009-11-15 23:04:24

+1

@Pekka:查看[kint的脚本](https://github.com/raveren/kint/tree/master/scripts)关于如何注册自定义协议并用它来调用某些文本编辑器的示例。 – Tgr 2012-08-30 13:19:43

2

没有办法用javascript做到这一点。但它看起来可能与Firefox插件。有一个look at this

+0

这看起来很有趣,但是我对XUL一无所知,并且觉得无法弄清楚如何将它变成执行本地文件(而不是写入它)的东西。提示将非常受欢迎。 – 2009-11-15 20:09:39

+0

写一个扩展并不难。有一个谷歌搜索它,阅读一些教程,然后搜索“执行本地文件的Firefox外延”。 – Marius 2009-11-15 22:51:59

+0

点了。我可能会回到这里,但会先尝试协议方法(见下文)。 – 2009-11-15 23:05:08

1

我认为最接近你的是通过让浏览器的配置将特定的MIME类型与给定的“帮助应用程序”(这里是IDE程序)相关联,并让HTTP服务器返回这样的文件。

否则,安全问题决定了浏览器将不会运行在客户端上的任何“abritrary”程序/逻辑。

+0

将文件与IDE关联将无济于事,因为IDE应该打开的文件是本地副本。人们可以 - 我不这么认为 - 当然在PHP端生成.bat文件,其中包含使用本地副本打开IDE的说明。但是由于可能会出现巨大的安全漏洞,我不愿意长期使用它。 – 2009-11-15 20:12:25

+0

或者,您可以注册一个协议处理程序(如iTunes和Skype等其他应用程序所做的那样),以便由您的IDE处理。 – 2009-11-15 20:46:48

0

我不知道哪一个IDE你正在使用,但在例如Eclipse的,你还可以使用内置的网页浏览器来测试你的webapp的例外/在Eclipse控制台日志跟踪已经链接到源代码有问题。那样容易。看看你的IDE是否提供类似的东西。

+0

我使用phpEd,并且需要在不能使用调试器的环境中进行远程测试。另外,我希望尽可能保持IDE独立于此。 – 2009-11-15 19:54:02

1

佩卡,

读线程到目前为止之后,似乎要构建以某种方式与服务器进行身份验证的应用程序 - 即:“普通用户”将不能访问它。如果是这种情况,那么在不编写自定义扩展的情况下通过浏览器交付它​​是不可能的。

通过的GreaseMonkey运行认证是困难的,但一旦客户端通过验证,也没有“跑”跟踪真正的出路。

如果服务器生成批处理文件或某种指令集(脚本,快捷方式等),您可以简单地配置浏览器(或让应用程序的本地实例配置浏览器)来运行该文件。这里的问题是你没有办法自动验证!

我可以想象得到这个工作的唯一方法就是通过一个Java小应用程序,这个应用程序只需要每次想要导入跟踪时都需要Java初始化。

您遇到的问题是浏览器本质上是安全的。它旨在保护计算机免受恶意软件,流氓网站等的侵害,因此,如果不为浏览器开发自定义扩展,则无法跳转到与浏览器同时运行的任何应用程序。

所以在那个笔记上,我建议你重新考虑编写如上所述的Firefox XUL扩展。您可能需要实现一些XPCOM代码才能使其工作。这里有一些资源,这将帮助你开始:

https://developer.mozilla.org/en/xpcom

https://developer.mozilla.org/En/XUL

http://ted.mielczarek.org/code/mozilla/extensiondev/

https://developer.mozilla.org/en/XUL_Tutorial/Introduction

+0

感谢您的广泛回答和链接。身份验证不是第一个问题,因为我的框架中的错误处理程序已经这样做了(规则是“仅向用户显示通用错误消息,并且仅当用户以管理员或详细模式打开时登录时才会显示具体细节”) 。因此,对于我来说,能够以某种方式关闭本地Firefox中的某个URL的所有*安全性将是完美的解决方案。然后,PHP站点可以向我发送指向file:// C:// development/....或其他内容的链接。如果这不起作用,我会看看写一个扩展名。 – 2009-11-15 20:44:31

2

http://mozex.mozdev.org/

MozEX是一个扩展,它允许用户使用外部程序进行以下操作:

* edit content of textareas (possibly utilizing a spell-checker, color syntax etc.) 
* view page source 
* handle mailto, news, telnet and FTP links 
* download files 
* ... and many more :) 

通用处理器可以让你进入协议方案,如列表, “abc://,def://”和一个 命令来处理它们。因此,您只需让应用程序生成一个以您的选择(制定)协议开头的网址,mozex将拦截对该网址的点击并将URL作为参数发送给您选择的命令。

我认为这正是你想要的。

+0

在链接中访问网站上的插件或源代码似乎过时了,但在Google搜索一段时间后,我能够找到一份副本,并将其加载到Github以防其他人正在查找它。https ://github.com/dcondrey/Mozex – davidcondrey 2014-09-29 07:35:56

相关问题