2013-05-03 3 views
0

문자 하위 분류를 사용하여 메시지 암호화/암호 해독 페이지를 코딩하려고합니다. 키를 파일에 저장하고 다시로드하려고합니다. 나는이 성공적 키로드 관리 :하나의 버튼으로 파일에서 텍스트를로드하는 방법은 무엇입니까?

<script> 
    function loadkey() { 
    var keyToLoad = document.getElementById("keyToLoad").files[0]; 
    var keyReader = new FileReader(); 
    keyReader.onload = function(keyLoadEvent) 
    { 
     var keyFromFileLoaded = keyLoadEvent.target.result; 
     document.getElementById("key").value = keyFromFileLoaded; 
    }; 
    keyReader.readAsText(keyToLoad, "utf-8"); 
} 
</script> 

<h3>Put your key here</h3> 
<textarea id="key" cols="30" rows="1"></textarea> 
<br> 
<button onclick="genKey()">Generate key</button> 
<button onclick="savekey()">Save key</button> 
<input type="file" id="keyToLoad"> 
<button onclick="loadkey()">Load key</button> 

그러나 파일 선택 버튼을 정말 바보 loodk 별도로 키 버튼을로드합니다. 그래서 입력 버튼을 숨기고로드 키 버튼을 클릭에서 트리거 :

<script> 
    function handleChooseKey() 
{ 
    document.getElementById("keyToLoad").click(); 
} 

function loadkey() { 
    var keyToLoad = document.getElementById("keyToLoad").files[0]; 
    var keyReader = new FileReader(); 
    keyReader.onload = function(keyLoadEvent) 
    { 
     var keyFromFileLoaded = keyLoadEvent.target.result; 
     document.getElementById("key").value = keyFromFileLoaded; 
    }; 
    keyReader.readAsText(keyToLoad, "utf-8"); 
} 
</script> 

<h3>Put your key here</h3> 
<textarea id="key" cols="30" rows="1"></textarea> 
<br> 
<button onclick="genKey()">Generate key</button> 
<button onclick="savekey()">Save key</button> 
<input type="file" id="keyToLoad" style="display:none;"> 
<button onclick="handleChooseKey();loadkey();">Load key</button> 

내 문제는 키 파일이로드 직후 loadkey() 함수를 작동하게 기운 다, 그래서 키가 늘 때까지로드 할 수 다음을 클릭하십시오. 도와주세요. 주셔서 감사합니다 :)

+0

난 당신이 file' 입력 '이벤트를 시뮬레이션 할 수없는 것 같아요. 나는 파일 입력을 투명하게 만들고 그 위에 다른 버튼을 놓을 것이다. 그래서, 사용자는 그가 다른 것을 클릭하고 있다고 생각할 것입니다. 이제 파일 입력의'change' 이벤트에서'loadKey()'를 호출 할 것입니다. –

답변

0

이 시도 :

<script> 
    function handleChooseKey() 
{ 
    document.getElementById("keyToLoad").click(); 
    document.getElementById("keyToLoad").onchange = function(e) { loadkey() }; 
} 

function loadkey() { 
    var keyToLoad = document.getElementById("keyToLoad").files[0]; 
    var keyReader = new FileReader(); 
    keyReader.onload = function(keyLoadEvent) 
    { 
     var keyFromFileLoaded = keyLoadEvent.target.result; 
     document.getElementById("key").value = keyFromFileLoaded; 
    }; 
    keyReader.readAsText(keyToLoad, "utf-8"); 
} 
</script> 

<h3>Put your key here</h3> 
<textarea id="key" cols="30" rows="2"></textarea> 
<br> 
<button onclick="genKey()">Generate key</button> 
<button onclick="savekey()">Save key</button> 
<input type="file" id="keyToLoad" style="display:none;"> 
<button onclick="handleChooseKey();">Load key</button> 
+0

완벽한! 고마워요 :) –

관련 문제