window.postMessage()
을 사용하여 컨테이너 window
과 iframe 콘텐츠 window
사이에서 통신하는 방법에 관한 많은 자습서를 따르고 있습니다.JS : postMessage를 사용하기 위해 window.parent를 가져올 수 없습니다.
그러나 수신자의 window
을 대상으로 할 수 없거나 postMessage()
이라고 부르는 문제가 발생하거나, 내가 얻은 개체가 비어 있습니다. 여기에 몇 가지 설명이 있으며, Github repo에있는 코드를보고 나를 따라갈 수 있습니다.
정확히 두 가지 프로젝트, iframe-content
및 iframe-container
이 있습니다. 각 프로젝트는 window
개체를 타겟팅하여 window.postMessage()
에 전화 할 수 있어야합니다.
var childWindow = document.getElementById('iframeContent').contentWindow
console.log('childWindow: ', childWindow);
오류가 발생하지 않습니다이 코드 만 반환 window
개체를 실행하는 용기의 경우
마찬가지로 <iframe>
콘텐츠
var parentWindow = $window.parent;
console.log('parentWindow: ', parentWindow);
에서 이렇게하면 용기에 관한 설명과 동일한다. See the code. postMessage()
함수가 오류를 반환 호출, 두 경우 모두
, 실제로 실패
무슨 뜻 빈window
개체의 스크린 샷을 참조하십시오.
무엇을 간과 할 수 있습니까? 무엇을 조사해야합니까? 감사합니다. 감사합니다.
청취자를 필요로 (괄호를 호출하지 않고!)? Firefox에서 일부 속성을 표시하는 동안 Chrome에서 창 개체가 항상 비어있는 것처럼 보입니다. –
@RainerRillke : 나는 네가 의논하고 FF와 Safari를 체크했는데 잊어 버렸다. FF는 당신이 말하는 것처럼 괜찮습니다, 사프는 보안에 대해 불평하고 있습니다. 다른 창에 대한 정보를 제공하는 것이 안전하지 않은 것일 수 있으므로 Chrome에서 오류는 표시되지 않지만 콘텐츠는 표시되지 않습니까? 나는 괄호없이'postMessage'를 체크했고'function() {[native code]}'를 보여줍니다. 일부 로깅을 추가하고 지금은 정상적으로 작동합니다. 내 디버그를 잘못 이해 했어야합니다. 감사! – jansensan
나만의 질문에 자유롭게 답변하십시오 –