2014-11-03 2 views
0

실제로 새 HTML 페이지에 데이터를 올바르게로드하는 문제가 있습니다. 목표는 레이블을 클릭하면 해당 레이블의 데이터로 새 페이지가 열리도록하는 것입니다. 이 프로젝트는 D3을 사용하고 있습니다.Javascript - window.open에서 데이터가 올바르게 표시되지 않는 문제

저는 instructions given in this question을 따르고 있습니다. 그러나 레이블을 클릭하면 (두 개의 결과가 있다고 가정) 실제 데이터 자체가 아니라 [object Object],[object Object]이됩니다. 실제 데이터를 출력하는 단계가 빠졌습니까? 부모의

코드 : 어떤 도움을 크게 감상 할 수

<script type="text/javascript"> 
var dataFromParent;  

function init() { 
    document.write("<p>" + dataFromParent + "</p>"); 
} 

init(); 

</script> 

아이

label.on('click', function(){ 
    var OpenWindow = window.open("results.html", "mywin", ''); 
    OpenWindow.dataFromParent = results; 
    OpenWindow.init(); 
}); 

코드! 감사!

+1

toString()이 객체에서 수행하는 동작입니다. 데이터를 다른 방식으로 작성해야합니다. – epascarello

+0

어떻게 다른 의미입니까? 내가 현재 가지고있는 형식 (현재 JSON)이 아닌 다른 형식으로 써야한다는 것을 의미합니까? – BDD

+0

예 ... 브라우저가 페이지에 출력 할 내용을 어떻게 예상합니까? JSON 객체를 문자열로보고 싶습니까? – epascarello

답변

1

JSON 개체의 개념을 보여 주겠다는 의견을 보내 주셨습니다. 당신은 무엇

document.write("<p>" + JSON.stringify(dataFromParent) + "</p>"); 

지금 당신이 자식 창에서 또한 부모 창에서 초기화를 호출하는 말도 안돼입니다 원하는 것은

document.write("<p>" + dataFromParent.toString() + "</p>"); 

입니다. 당신은 자식 윈도우가 오프너에서 메소드를 호출하기 위해로드하는 데 시간이 걸린다는 것을 알아야합니다. 그렇지 않을 수도 있습니다. 동일한 값을 설정하는 것과 같습니다.

document.write()은 좋지 않은 아이디어입니다.

+0

왜 document.write()가 나쁜 생각입니까? 내가 데이터를 쓰고 싶다면 올바른 방법이 아닌가? (나는 여전히 자바 스크립트 세계에 대해 상당히 익숙하다.) – BDD

+0

http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice – epascarello

+0

모든 도움을 주셔서 감사합니다. epascarello! – BDD

관련 문제