사용자가 자신의 PC 파일을 열어 직접 실행시키기
페이지 정보
작성자 서방님 댓글 0건 조회 205회 작성일 06-09-12 17:21본문
인터넷 익스플로러에서는 http 프로토콜을 통해 읽어들인 페이지가 로컬 파일(file 프로토콜)을 여는 것을 허용한다. 반면 넷스케이프는 트러스티드(trusted) 스크립트가 필요하다. 여기서는 인터넷 익스플로러 및 넷스케이프에서 모두 동작하는 스크립트를 살펴보도록 하겠다.
아래 "찾아보기..." 버튼을 클릭하여 자신의 컴퓨터에서 브라우저로 읽어들일 수 있는 파일(html, 텍스트, 이미지,...)을 선택한 후 "파일 열기" 버튼을 클릭해 보기 바란다.
위 결과에 대한 소스 코드는 다음과 같다.
<SCRIPT>
function displayLocalFile (strFileName) { var url = 'file:///' + strFileName; //넷스케이프의 경우... if (document.layers && location.protocol.toLowerCase() != 'file:' && navigator.javaEnabled()) netscape.security.PrivilegeManager.enablePrivilege('UniversalFileRead'); open (url, 'preview'); } </SCRIPT> <FORM NAME="myForm"> <INPUT TYPE="file" NAME="myFile"> <INPUT TYPE="BUTTON" VALUE="파일 열기" ONCLICK="displayLocalFile(this.form.myFile.value);"> </FORM> |
HTML에서 파일을 찾아볼 수 있는 버튼을 만들려면 <input type=""file"...>을 해주면 된다.
사용자가 파일 열기 버튼을 클릭하면 (onCLick 이벤트 발생) 찾아보기 버튼을 통해 읽어들인 파일명(여기서는 this.form.myFile.value)을 displayLocalFile 함수의 파라미터로 넘겨준다.
displayLocalFile 함수에서는 이 파라미터를 받아 "file:///" 프로토콜 문자열과 연결시켜 open 메쏘드로 호출하면 되는 것이다. 다만 넷스케이프의 경우 트러스티드 스크립트가 필요하므로 eneblePrivilege 메쏘드를 이용하여 셋팅하도록 한다.
댓글목록
등록된 댓글이 없습니다.