I have two buttons that work differently. The first one is when you click the reload button, it should reload the page. The second one is when you click it, it will show the alert on the page.
I’m using postMessage because its inside the iframe. I’m not sure why the two buttons are not working but I already implemented the postMessage and window.onmessage
CODESANDBOX
CODE
function reloadPage() {
window.parent.postMessage({ reload: true }, 'https://8beu4h.csb.app');
}
function alertPage() {
window.parent.postMessage({ alert: true }, 'https://8beu4h.csb.app');
}
window.onmessage = (event) => {
const { data, origin, source } = event;
if (source == frameToListen.contentWindow) {
try {
if (data.reload) {
window.location.reload();
}
} catch (e) {
console.error(e);
}
}
};
window.onmessage = (event) => {
const { data, origin, source } = event;
if (source == frameToListen.contentWindow) {
try {
if (data.alert) {
alert("HI");
}
} catch (e) {
console.error(e);
}
}
};
Advertisement
Answer
Parent Window
window.addEventListener(
"message",
function (event) {
const { data, source } = event;
console.log(source);
if (source == frameToListen.contentWindow) {
if (data.reload) window.location.reload();
if (data.alert) alert("HI");
}
},
false
);
CHILD WINDOW
function reloadPage() {
window.parent.postMessage({ reload: true }, 'https://eq0o2y.csb.app/');
}
function alertPage() {
window.parent.postMessage({ alert: true }, 'https://eq0o2y.csb.app/');
}