У меня есть кнопка, по клику на которую выполняется след. код:
const newWindow = window.open(response.data.authUrl, 'newwindow', 'height=570,width=670,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no');
newWindow.addEventListener('message', (event) => {
if (!event.data) {
return;
}
const data = JSON.parse(event.data);
if (data.action === 'amo-connected-success') {
this.getIntegration();
newWindow.close();
}
});
В response.data.authUrl - лежит домен amocrm. Код выше открывает дочернее окно и в нем проходит oauth авторизация в amocrm, далее amocrm перенаправляет запрос обратно на сайт в этом же окне. По этому урл отрабатывает код:
document.addEventListener("DOMContentLoaded", function() {
var data = {
action: 'amo-connected-success',
};
window.postMessage(JSON.stringify(data), '*');
});
Но почему-то это не работает.
При этом, если я для теста сразу открою окно с адресом текущего сайта а не амо, то все работает.
const newWindow = window.open('адрес-сайта.рф/путь', 'newwindow', 'height=570,width=670,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no');
newWindow.addEventListener('message', (event) => {
if (!event.data) {
return;
}
const data = JSON.parse(event.data);
if (data.action === 'amo-connected-success') {
this.getIntegration();
newWindow.close();
}
});