728x90
관련 공지 링크 : https://developer.chrome.com/blog/document-domain-setter-deprecation/
Chrome disables modifying `document.domain` - Chrome for Developers
If your website relies on setting document.domain, your action is required.
developer.chrome.com
Chrome 115버전부터 document.domain의 수정을 금지한다. 기존에 DOM 내부에서 CORS(Cross Origin Resource Sharing)를 지원하기 위해 사용하던 방법인데, 이제는 다른 방안을 찾아야 한다.
팝업이나 iframe에 document.domain을 사용했다면 이제 개선이 필요하다.
대용으로 공식 가이드에서 target.postMessage 와 target.addEventListener 를 사용하도록 권고 하고 있다.
부모창에서
// Send a message to https://video.example.com
iframe.postMessage(JSON.stringify(param), 'https://video.example.com');
// 또는 iframe.postMessage(JSON.stringify(param), '*') 처럼 아스타리크 사용가능
// iframe으로 메시지 전송이 정상적인지 추적하기 위한 Receive messages event
iframe.addEventListener('message', (event) => {
// Reject all messages except ones from https://video.example.com
if (event.origin !== 'https://video.example.com') return;
// Filter success messages
if (event.data === 'succeeded') {
// DOM manipulation is succeeded
}
});
이렇게 데이터를 Cross-Domain하게 주고 받을 수 있다.
자식창에서
// 부모창으로 부터 Receive messages
window.addEventListener('message', (event) => {
// Reject all messages except ones from https://parent.example.com
if (event.origin !== 'https://parent.example.com') return;
// Do a DOM manipulation on https://video.example.com.
IFRAMEParamObj = JQuery.parseJSON(event.data).param;
// Send a success message to https://parent.example.com
event.source.postMessage('succeeded', event.origin);
});
'Programming > Frontend' 카테고리의 다른 글
(React) 기초 - 함수 만들기 (0) | 2024.10.30 |
---|---|
(React) 기초 - 변수 선언하기 (0) | 2024.10.28 |
yarn install 시 발생하는 오류 해결 (0) | 2023.06.29 |
NPM 운영환경으로 이전할때 발생하는 버그 및 FIX (0) | 2023.06.26 |
NPM 패키지 매니저 Linux에 설치하기 (0) | 2023.06.25 |