當包含Javascript代碼的.htm
文件在本地(不是來自Web服務器)加載時,如何使用Javascript檢查本地磁盤上是否存在.htm
文件?使用Javascript檢查本地磁盤上是否存在.htm文件
回答
該解決方案適用於大多數所有版本的IE和FF。從本地磁盤運行時無法在Chrome上使用。
我在同步模式下使用XHR和舊的IE ActiveX控件。您可以輕鬆將其轉換爲使用onreadystatechange回調運行異步。
在你自己的Javascript代碼中,只需調用IsDocumentAvailable(「otherfile.htm」),你應該設置。
function IsDocumentAvailable(url) {
var fSuccess = false;
var client = null;
// XHR is supported by most browsers.
// IE 9 supports it (maybe IE8 and earlier) off webserver
// IE running pages off of disk disallows XHR unless security zones are set appropriately. Throws a security exception.
// Workaround is to use old ActiveX control on IE (especially for older versions of IE that don't support XHR)
// FireFox 4 supports XHR (and likely v3 as well) on web and from local disk
// Works on Chrome, but Chrome doesn't seem to allow XHR from local disk. (Throws a security exception) No workaround known.
try {
client = new XMLHttpRequest();
client.open("GET", url, false);
client.send();
}
catch (err) {
client = null;
}
// Try the ActiveX control if available
if (client === null) {
try {
client = new ActiveXObject("Microsoft.XMLHTTP");
client.open("GET", url, false);
client.send();
}
catch (err) {
// Giving up, nothing we can do
client = null;
}
}
fSuccess = Boolean(client && client.responseText);
return fSuccess;
}
我只需要將fSuccess分配修改爲:fSuccess = Boolean(client && client.responseText && client.status!= 404); – Cornel 2011-03-02 08:15:24
很酷。什麼是client.responseText當狀態404離開文件系統?根據不同的瀏覽器以及內容是本地還是網絡服務器,您可能會返回「0」或「200」以取得成功。用不同的瀏覽器測試真實和虛假的情況。 – selbie 2011-03-02 08:41:45
我不知道爲什麼這個解決方案必須這麼久,但它確實很好!謝謝! – dezman 2013-05-14 21:02:20
假設htm文件是在同一個域,你可以這樣做:
function UrlExists(url) {
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
這不會對工作由於域安全限制,在多個瀏覽器(如Chrome)上使用本地文件系統。
- 1. 檢查磁盤上是否存在文件?
- 2. 使用File.Exists()檢查視圖是否存在於磁盤上
- 3. 是否可以使用Javascript(未在瀏覽器中運行)檢查磁盤上是否存在文件?
- 4. 是否可以驗證本地磁盤上的HTML文件?
- 5. ansible - 檢查本地計算機上是否存在文件
- 6. HTML:如何檢查文件是否存在於本地PC或不使用javascript
- 7. 用於檢查文件是否在磁盤上的C++方法wchar_t
- 8. Javascript:使用javascript檢查本地文件的存在
- 9. 的Javascript檢查文件是否存在
- 10. 如何用JavaScript打開本地磁盤文件並檢查它是否包含我們需要的單詞?
- 11. 如何檢查是否使用本地/硬件鍵盤?
- 12. 如何檢查當前驅動器是否位於本地磁盤(cmd)上?
- 13. 檢查本地文件是否可用
- 14. Python:檢查/ dev /磁盤設備是否存在
- 15. 檢查字符串以查看文件是否存在本地
- 16. 是否可以在本地磁盤上創建ClearCase VOB?
- 17. 在磁盤上保存文件
- 18. 在磁盤或MongoDB上存儲文件
- 19. 檢查是否有足夠的磁盤空間來保存文件;保留它
- 20. 當文件不存在本地磁盤上的java文件構造函數
- 21. 檢查文件是否存在或不使用JavaScript
- 22. 檢查文件是否存在使用Acrobat JavaScript的
- 23. Javascript檢查本地腳本是否存在
- 24. 檢查NSURL是否爲本地文件
- 25. 如何檢查linux系統是否使用大磁盤空間?
- 26. 使用Javascript - 保存到磁盤文件是停留在Chrome的內存
- 27. 在檢查可用的磁盤空間陣營本地
- 28. 如果文件已存在於磁盤上,WebClient.DownloadFileAsync是否覆蓋文件?
- 29. 如何用Javascript打開本地磁盤文件?
- 30. 檢查本地文件是否存在(HTML5 FS API)
跨瀏覽器,還是隻是IE?正常的網頁安全或受信任的網站? – 2011-03-02 06:48:12