0

こんにちは、html/javascript コードに問題がありました:

function rf()
{

    var fs,file;

    fs = new ActiveXObject('Scripting.FileSystemObject');

    file = fs.OpenTextFile('/test123.txt',2);

    file.Write('The text to write to file');

    file.Close();

}

</script>
<button onclick="rf()">Try it</button>
</html>

ページに移動し、ボタンをクリックしますが、成功しません。誰かが私のためにこれを修正できますか?

4

1 に答える 1

1

Internet Explorer でさえ、どのバージョンでもデフォルトでこの構造を許可していません。これを許可するには、非常に危険な設定を手動で切り替える必要があります。ブラウザでの Javascript の全体的な目的は、ブラウザ プロセス内でサンドボックス化され、周囲のコンピュータとそのファイル システムにアクセスしたり、さらに悪いことに書き込みを行う手段がまったくないことです。このコードが機能する場合、誰かがあなたのSystem32フォルダー内のファイルで同じことをするのを止めるにはどうすればよいでしょうか? それともhiberfil.sys?それともautoexec.bat?言うまでもなく、あなたが達成しようとしていることは、どのコンピューターでもどのブラウザーでも機能することはできませんし、機能するべきではありません。

この件に関する Microsoft のドキュメント:

クライアント側で FSO を使用すると、クライアントのローカル ファイル システムへの好ましくないアクセスが提供される可能性があるため、サーバー側で実行されるスクリプトでのみ使用する必要があります。Internet Explorer の既定のセキュリティ設定では、クライアント側で FileSystemObject オブジェクトを使用することはできません。これらの既定値を上書きすると、ローカル コンピューターがファイル システムへの好ましくないアクセスにさらされる可能性があり、その結果、ファイル システムの整合性が完全に破壊され、データが失われるか、さらに悪い結果が生じる可能性があります。

于 2013-05-05T20:08:02.690 に答える