我在使用自定義協議通過瀏覽器打開本地文件時遇到了一些實際問題。現在,在您爲自定義協議拍攝我之前,此Web應用程序將在封閉的Intranet環境中工作,因此我完全可以控制爲所有用戶添加這些協議。該應用程序目前工作正常,但我被要求繞過文件的打開/保存對話框,因爲它'煩人'和'耗時'(是的,我知道...我試圖告訴他們),所以在這裏我處於未知領域!使用自定義協議打開網址 - 語法錯誤?
這裏是那麼的有什麼不工作(我用記事本在這個例子中,以測試其在服務器2008 R2與IIS7)爲例:
使用信息上Registering an Application to a URL Protocol我已經添加下面的註冊表:
HKEY_CLASSES_ROOT
opentxt
(Default) = "URL:opentxt Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "C:\Windows\System32\notepad.exe,1"
shell
open
command
(Default) = "C:\Windows\System32\notepad.exe" "%1"
所以,現在,從理論上講,它應該是爲在我的HTML
<a href="opentxt://localhost/openme.txt">Open File</a>
以下鏈接一樣方便,它幾乎工作 - 點擊次e鏈接,它立即打開記事本,但是我在記事本中出現了這個錯誤。
The filename, directory name, or volume label syntax is incorrect
該文件將在該位置存在一定(我可以用它閱讀http: //localhost/openme.txt
)和我一直試圖代表許多不同的格式,如描述here鏈接,但只是無法得到它工作。
任何想法我錯了嗎?
道歉 - 這是一個考慮不周的例子;當然這不起作用,我同意。 但是,即使將鏈接更改爲「Open File」和該位置的文件definitaly,我仍得到相同的結果。 也許你正在做某事。我一直在玩CustomURL,並且可以成功地手動推送這種類型的請求。我想知道是否需要攔截這些請求,然後在將它們發送到目標應用程序之前對它們進行清理,因爲正在輸出的內容和我期望輸出的內容必須不一樣。 – Kaitie
隨着你提到的鏈接,記事本*仍然*通過完整的網址。記事本不知道如何處理'opentxt:// C:\ openme.txt' - 你需要一些東西在協議解除之前就解開它。 –
謝謝丹 - 這正是我需要理解的。我沒有意識到協議也會在URL傳遞時保持連接狀態 - 刪除這些我確信我可以處理。 – Kaitie