여기서는 jQuery.twFile.js 를 사용 해 보자. twFile.js 에 대해서는 아래 링크를 참고하자.
기본적으로 여기서는 chrome 에서 twFile.js 를 사용 해 볼 것이다. 이 twFile 이 하는 일은 local file system 에 접근해서 file 에 대한 처리를 할 수 있다. 여기 예제에서는 save 와 관련된 작업을 test 해 볼 것이다.
여기서 사용한 source 는 아래에서 다운로드 할 수 있다. make.bat 를 사용하면 out/classes 에 최종파일이 만들어진다.
jQuery.twFile.js 는 jquery 를 필요로 하기 때문에 HTML file 에 jquery 를 include 시켜줘야 한다. 그리고 chrome 에서 file 을 다룰 때 TiddlySaver applet 을 사용하기 때문에 TiddlySaver applet 을 같이 배포해야 한다.
실행 예제
이제 부터 간단한 example 을 만들어 보자. 필요한 file 은 아래와 같다.
- applet 을 호출하는 html page
- TiddlySaver.jar
- jQuery.twFile.js
- jquery javascript
Sources
- jQuery.twFile.js, epub-revision - Development area for EPUB3 - Google Project Hosting
- TiddlySaver.java
jQuery.twFile.js, jquery
두 파일은 그냥 가져다 사용하면 된다.jQuery.twFile 의 firefox 부분은 수정이 필요하다. jQuery.twFile 에서 이제는 사용할 수 없는 XPCOM 을 사용하고 있기 때문이다.
enablePrivilege is deprecated
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect") does not works anymore afer ff15.0.1 update ? | Firefox 도움말 포럼 | Mozilla 도움말,
Firefox 17 부터는 privileged code 가 web page 같은 non-privileged page 에서는 실행될 수 없다고 한다. - Bypassing Security Restrictions and Signing Code | MDN 에 따르면 Privilege Manager 는 Firefox 12 에서 deprecated 됐다고 한다.
- accessing Mozilla xpcom extensions in Firefox 16 • mozillaZine Forums 에서도 firefox 17 부터 더이상 Components class 를 사용하지 못한다고 이야기한다.
- Chapter 4: Using XPCOM—Implementing advanced processes - Mozilla | MDN 에서도 더이상 web page 에서 XPCOM 을 이용할 수 없다고 한다.
현재(2014. 07. 18), firefox 30 이 release 된 상태이다.
HTML file
jQuery.twFile.js 에서 applet 을 호출할 때 id 를 'TiddlySaver' 로 호출하기 때문에 아래처럼 'TiddlySaver' 로 맞춰줘야 한다.<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html">
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jQuery.twFile.js"></script>
<script language="javascript">
function enterNums(){
$.twFile.save("c:\\temp\\lsrc\\ttt.txt", "Hi ! ddd");
}
</script>
</head>
<body>
<noscript>A browser with JavaScript enabled is required for this page to operate properly.</noscript>
<script src="https://www.java.com/js/deployJava.js"></script>
<script>
<!-- applet id can be used to get a reference to the applet object -->
var attributes = { id:'TiddlySaver', code:'jstojava.TiddlySaver', width:1, height:1} ;
var parameters = {jnlp_href: 'tiddlySaver.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.7');
</script>
<p><a href="javascript:enterNums();">Launch Example</a></p>
</body>
</html>
tiddlySaver.jnlp
jnlp 에서도 권한 설정을 해줘야 한다.
<security> <all-permissions/> </security>
TiddlySaver.jar
이 jar file 에서는 local file 을 접근할 수 있어야 해서 permission 설정이 필요하다. 그리고 applet 에 대한 signing 작업도 필요하다.permission 설정
permission 설정은 Manifest 파일에 권한을 넣어주면 된다. 이 부분은 make.bat 의 jar 을 만드는 부분을 참고하기 바란다.Permissions: all-permissions
signing
test 를 위해서 자체적으로 signing 을 해서 사용할 것이다. 다만 이렇게 자체적으로 signing 한 jar 을 사용하기 위해서는 제어판에 있는 java 에 "보안" 수준을 "중간" 으로 낮춰줘야 한다.signing 은 sample source 의 signing.bat 를 참고하기 바란다.
댓글 없음:
댓글 쓰기