2016-10-13 2 views
1

При запуске: MyPopWindow.postMessage ("Test", 'mydomaine'); У меня есть ошибки на MyPopWindow ти script.google.com:window.postMessage to script.google.com as popup

(программа): 1 Не удалось выполнить 'PostMessage' на 'DOMWindow': целевой происхождения при условии ('mydomaine') не совпадают с исходным окном получателя ('https://script.google.com').

При запуске: MyPopWindow.postMessage ("Test", 'https://script.google.com'); У меня есть ошибка на MyPopWindow:

капельной PostMessage .. был от хозяина mydomaine, но ожидается, хозяин https: // ****** - script.googleusercontent.com

Источник в странице на mydomaine:

window.addEventListener("DOMContentLoaded", function() { 
 
    window.addEventListener("message", function(e) { 
 
     // wait for child to signal that it's loaded. 
 
     if (e.data === "loaded" && e.origin === iframe.src.split("/").splice(0, 3).join("/")) { 
 
      // send the child a message. 
 
      alert(e.data); 
 
     } 
 
    }) 
 
}, false)

Источник на моем Google Apps Script подножка в WebApp:

 document.addEventListener('DOMContentLoaded', function() { 
 
      // signal the parent that we're loaded. 
 
      window.parent.postMessage("loaded", "*"); 
 
      
 
      // listen for messages from the parent. 
 
      window.addEventListener("message", function(e) { 
 
      if(event.origin !== 'mydomain') return; 
 
        var message = e.data; 
 
        alert(message); 
 
      }, false); 
 
     });

ответ

0

Это сообщение об ошибке происходит от одного из App Scripts Javascript driver files. Это дополнительная защита, которую Google добавил, чтобы люди не могли использовать систему postMessage.

Кажется, Google хочет заставить вас использовать один из принятых протоколов для связи между окнами/доменами, а именно: Execution API. Я попытался использовать другие методы, такие как передача параметров URL-адреса, но пока никто не работал, потому что я не мог получить к ним доступ из iframe, в котором запущены все скрипты приложений.

Я считаю, что лучшим вариантом является API-интерфейс Execution.

+0

Да, вы правы. «Я считаю, что API Execution - ваш лучший выбор». - нет: P – user144039