0

次のコードはChromeで動作しますが、FFまたはIEでは動作しません。Chromeでは動作しますが、IEまたはFFでは動作しません

このコードでは、テキストファイルを選択して10秒ごとに内容を読み直し、PREタグをテキストファイルの内容で更新します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
    <head> 
 
    <title>Read text file every 10 seconds</title> 
 
    <script type="text/javascript"> 
 
\t \t 
 
\t \t 
 
\t var currentIntervalId = undefined; 
 
\t \t var startOrRestart = function(that) { 
 
\t \t if (currentIntervalId !== undefined) clearInterval(currentIntervalId); 
 
\t \t readText(that); // For executing immediately 
 
\t \t currentIntervalId = setInterval(function() { readText(that); }, 10000); 
 
\t \t }; 
 
\t \t 
 
\t \t function readText(that){ 
 
\t \t \t if(that.files && that.files[0]){ 
 
\t \t \t //alert("hello"); 
 
\t \t \t \t var reader = new FileReader(); 
 
\t \t \t \t reader.onload = function (e) { 
 
\t \t \t \t \t var contents = e.target.result;//.replace("\r\n","<br/>"); 
 
\t \t \t \t \t contents = contents.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'); 
 
\t \t \t \t \t document.getElementById('board').innerHTML= contents; 
 
\t \t \t \t };//end onload() 
 
\t \t \t \t reader.readAsText(that.files[0]); 
 
\t \t \t }//end if html5 filelist support 
 
\t \t } 
 
\t \t 
 
    </script> 
 
    </head> 
 
    <body> 
 

 
<input type="file" onchange='startOrRestart(this)' /> <hr /> 
 

 
<pre id="board" contenteditable = "true"> 
 
This is where the text from the chosen text file will be loaded. 
 
</pre> 
 

 
</body> 
 
</html>

誰かが、これは他のブラウザで動作するように得るのを助けることができますか?

ありがとうございます。

答えて

0

ファイルが選択されると、入力はその時点での内容のスナップショットを持ちます。ディスク上のローカル変更はスナップショットを更新しません。

Chromeの実装が仕様を破っているように見えるので、Chromeでのみ動作します。

説明付きの別の質問が表示されますhere

関連する問題