2009-04-28 107 views
0

如果不使用網絡服務器(瀏覽文件系統中的html文件),可以攔截404錯誤嗎?無服務器自定義404錯誤

我嘗試了一些JavaScript,使用一個隱藏的iframe預載目標頁面並檢查結果,然後觸發自定義錯誤或重定向到正確的頁面。

這項工作很好,但在性能上並不好。

+0

您的標題和問題不匹配。 – Calvin 2009-04-28 10:38:54

回答

5

404錯誤是HTTP狀態響應。所以除非你試圖使用HTTP請求/響應來檢索這個文件,否則你不能有一個真正的404錯誤。你只能像你所建議的那樣模仿一個。處理404錯誤的任何「標準」方式都取決於您的網絡服務器風格......

1

爲什麼你不想使用服務器?

我不認爲有可能處理404錯誤客戶端,因爲404錯誤是服務器端

每當您加載網頁時,都會向服務器發出請求。因此,當你要求一個不存在的文件時,它是處理錯誤的服務器。當服務器發送迴應以告訴您它找不到該文件時,常規的HTML/CSS/JavaScript纔會出現。

史蒂夫

1

404是HTTP響應代碼,並且因此由該說話它服務器僅通過HTTP協議傳送。 file://擴展名並不是一個真正的協議響應,因此它是內置於客戶端(如瀏覽器)中的一種黑客技術,可以啓用本地文件支持,但是,無論瀏覽器/客戶端本身是否暴露其文件中的任何響應代碼, //執行。例如,理論上他們可以在DOM中報告它們,但是它們會是暴露給自己的響應代碼,因此很少實施。大多數不這樣做,而且沒有一個標準的方法。您可以查看Firefox等瀏覽器擴展程序,看看它們是否支持它,但是,這樣做會非常不規範,如果您在網絡上彈出它,它可能會中斷。