HTMLファイルが置かれているファイルがローカルに存在するかどうかを確認したい。 JavaScriptでなければなりません。 JavaScriptは決して無効になりません。 jQueryは良くありませんが、できます。
ところで、私はMac用のチタンアプリを作っているので、「パッケージの内容を表示」をクリックする人からファイルを保護する方法を探しています。
あなたの質問はあいまいなので、あなたが本当に達成しようとしているものに応じて、複数の可能な答えがあります。
Titaniumを使用してデスクトップアプリケーションを推測しているように開発している場合、FileSystemモジュールのgetFileを使用してファイルオブジェクトを取得し、existsメソッドを使用して存在するかどうかを確認できます。
AppceleratorのWebサイトからの例を以下に示します。
var homeDir = Titanium.Filesystem.getUserDirectory();
var mySampleFile = Titanium.Filesystem.getFile(homeDir, 'sample.txt');
if (mySampleFile.exists()) {
alert('A file called sample.txt already exists in your home directory.');
...
}
getFileメソッドリファレンスドキュメント を確認してください
そして 既存のメソッド参照ドキュメント
彼が通常のWeb開発状況について尋ねていると思った人のために、それは私が与えた2つの答えです:
1)サーバー側のファイルが存在するかどうかを確認したい。この場合、ajaxリクエストを使用してファイルを取得し、受信した応答に反応することができます。ただし、Webサーバーによって公開されているファイルのみをチェックできることに注意してください。より良いアプローチは、ファイル名を指定してチェックを行い、ajax経由でそのスクリプトを呼び出すサーバー側スクリプト(たとえば、php)を記述することです。また、十分に注意しないと、アプリケーション/サーバーに非常に簡単にセキュリティホールを作成できることに注意してください。
2)クライアント側のファイルが存在するかどうかを確認したい。この場合、他の人から指摘されたように、セキュリティ上の理由から許可されていません(ただし、IEはこれまでActiveXおよびScripting.FileSystemObjectクラスを介して許可されていました)ファイルを確認できるようにしたいので、このことは忘れてください。
「Kranu」は「ファイルシステムとの唯一の相互作用はjsファイルのロードに関するものである」と有益にアドバイスしているためです。 。 。 '、つまり、エラーチェックを行うことで、少なくともファイルがnot存在するかどうかがわかります。これは目的には十分でしょうか。
ローカルマシンから、ファイルをロードしようとすることで、ファイルが存在するかどうかを確認できますnot(それを外部スクリプトとして使用し、エラーをチェックします。例えば:
<span>File exists? </span>
<SCRIPT>
function get_error(x){
document.getElementsByTagName('span')[0].innerHTML+=x+" does not exist.";
}
url=" (put your path/file name in here) ";
url+="?"+new Date().getTime()+Math.floor(Math.random()*1000000);
var el=document.createElement('script');
el.id="123";
el.onerror=function(){if(el.onerror)get_error(this.id)}
el.src=url;
document.body.appendChild(el);
</SCRIPT>
いくつかのメモ...
これを使用できます
function LinkCheck(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
Javascriptはファイルシステムにアクセスできず、存在を確認できません。ファイルシステムとの唯一のやり取りは、jsファイルと画像(png/gif/etc)の読み込みです。
Javascriptはこのタスクではありません
Javascriptを使用してファイルが存在するかどうかを確認したい場合は、セキュリティ上の理由により、javascriptはファイルシステムにアクセスできません。
幸いなことに、標準のJSでクライアント側のファイルシステムにアクセスすることは(セキュリティ上の理由で)不可能です。ただし、MicrosoftのIE専用ActiveXコンポーネントなど、独自のソリューションもいくつかあります。
別の方法:特権アクションオブジェクトを使用してこの存在チェックを実装する「非表示」アプレット要素を使用し、次の方法でrunメソッドをオーバーライドできます。
File file = new File(yourPath);
return file.exists();
これを行う方法の1つは、imgタグを作成し、src属性を探しているファイルに設定することです。 img要素のonloadまたはonerrorは、ファイルが存在するかどうかに基づいて起動します。このメソッドを使用してデータを読み込むことはできませんが、特定のファイルが存在するかどうかを判断できます。
これを試して:
window.onclick=(function(){
try {
var file = window.open("file://mnt/sdcard/download/Click.ogg");
setTimeout('file.close()', 100);
setTimeout("alert('Audio file found. Have a Nice day!');", 101);
} catch(err) {
var wantstodl=confirm("Warning:\n the file, Click.ogg is not found.\n do you want to download it?\n "+err.message);
if (wantstodl) {
window.open("https://www.dropbox.com/s/qs9v6g2vru32xoe/Click.ogg?dl=1"); //downloads the audio file
}
}
});