2009-11-15 59 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

相關問題