2012-01-07 2 views
3

나는이 방문자의 정보를 저장하기 위해 내 페이지의 헤더에 파일을 JS 포함했다 :session.js에서 Json으로 노출 된 방문자 데이터에 액세스하는 방법은 무엇입니까?

https://github.com/codejoust/session.js/

내가 뭘 원하는 방문자 정보를 얻을하고 숨겨진 양식 필드에 해당 정보를 설정하는 데 사용할 것입니다

"browser": { 
    "browser": "Chrome", 
    "version": 16, 
    "OS": "Mac" 
    }, 

내가 대한 혼란 스러워요하는 방법입니다 : 예를 들어

, I 추출 할 JSON의 섹션 중 하나는 다음과 같습니다 : 서버에 전달 이 데이터에 액세스하십시오.

처음에는 내 페이지의 head 섹션에 js 파일을 포함하고 window.session.browser.browserwindow.session.browser.OS과 같은 요소에 액세스하는 것으로 간단하게 처리되었습니다. 원래의 js 파일이 업데이트 된 후

그러나,이 방법은 더 이상 작동하지 않으며 오류가 방화범에 표시되었습니다

window.session is undefined 

답변

1
var el = document.getElementById("some_hidden_input"); 
el.value = window.session.browser; 
2

데이터가 저장되는 window.session.browser에 :

var oBrowserData = window.session.browser; 
document.getElementById('os').value = oBrowserData.OS; 
document.getElementById('browser').value = oBrowserData.browser; 
document.getElementById('version').value = oBrowserData.version; 

example도 참조하십시오.

가 데이터에 액세스하려면, 당신은이 작업을 수행 할 수 있습니다
<body> 
<form> 
    <input type="hidden" id="os" name="os" value="" /> 
    <input type="hidden" id="browser" name="browser" value="" /> 
    <input type="hidden" id="version" name="version" value="" /> 
</form> 
<script type="text/javascript"> 
window.session = { 
    start: function(session) { 
     document.getElementById('os').value = session.browser.os; 
     document.getElementById('browser').value = session.browser.browser; 
     document.getElementById('version').value = session.browser.version; 
    }, 
    config: { gapi_location: false } 
}; 
</script> 
<script type="text/javascript" src="http://codejoust.github.com/session.js/session-0.4.js"></script> 
</body> 

또한 나의 새로운 example를 참조하십시오.

CodeJoust는 말했다 :

당신이 세션 0.4.js하지 session.js를 포함하면 API가 안정적으로 유지됩니다.

또한 위치 콜백을 기다리지 않으므로 본문에서 콜백 및 스크립트 태그를 모두 사용하는 것은 선택 사항입니다. 그러나 body 태그를 세션 끝에 추가하면 session.js 스크립트가로드 된 후에 form 태그를 수정할 수 있습니다.

+0

현재 server.js 버전에 대한 답변이 업데이트되었습니다. – scessor

+0

API가 바뀌어서 죄송합니다. 특정 버전에 링크해야한다는 것을 기억하고 아래에 응답을 포함 시켰습니다. 버전 0.3을 사용하지 않는 한 window.session_loaded API는 대신 window.session = {loaded : function() {/ * loaded * /}}이됩니다. – CodeJoust

+0

내 대답을 다시 업데이트했습니다. – scessor

0

API를 변경해 주셔서 진심으로 감사합니다.하지만 나중에 다시 처리하는 것이 좋습니다.

github 페이지에서 특정 버전을 사용하는 링크가 있다고 생각하며 버전을 사용하기 위해 링크를 사용하는 것이 좋습니다.

현재 안정 버전은 다음과 같습니다. http://codejoust.github.com/session.js/session-0.4.js github 데모의 API 정보 및 읽기 정보는 거기에 게시 된 최신 버전에 해당합니다.

이 사용 사례의 경우 헤더를 사용하고 위치 가져 오기를 사용하지 않을 것을 권장합니다. 콜백은 선택 사항이며 JSON 응답을 기다리고있는 경우에만 필요합니다.

<script>window.session = { gapi_location: false }</script> 
<script src="http://codejoust.github.com/session.js/session-0.4.js"></script> 
<script> 
    // Here you can access the session object. 
    alert(window.session.browser.browser); 
</script> 
관련 문제