如何从 Duda 获取 postMessage 消息到嵌入的 iframe 中?

问题描述 投票:0回答:1

根据我所读到的内容,让客户端代码从沙盒之外的 iframe 读取消息似乎是不可能的。我只能将其发送到沙盒之外的 iframe。那么解决方案是什么? 这是我到目前为止所尝试过的:

 document.addEventListener("DOMContentLoaded", function() {
   const queryString = window.location.search;
   const urlParams = new URLSearchParams(queryString);
   const signupToken = urlParams.get('token');
   //const iframe = document.getElementById('myiframe'); //Most outter iframe not reachable
   //const iframe = document.getElementById('sandboxed'); //Outter iframe not reachable
   const iframe = document.getElementById('userHtmlFrame'); //This would be the ideal, but not reachable
   if (iframe && signupToken) {
     console.log("WebApp iframe found and here is the token " + signupToken)
     iframe.contentWindow.postMessage({
       signupToken: signupToken
     }, "*");
   }
 });

然后,要阅读该消息,我需要:

let urlToken = '';
document.addEventListener("DOMContentLoaded", () => {
  window.addEventListener('message', (event) => {
    console.log("Received message:", event);
    if (event.origin === "https://www.kshkjfhkajhfd.com") {
      console.log("Correct origin");
      if (event.data && event.data.signupToken) {
        urlToken = event.data.signupToken;
        console.log("Token received from parent:", urlToken);
      } else {
        console.log("Message does not contain expected data:", event.data);
      }
    } else {
      console.error("Message from unknown or incorrect origin:", event.origin);
    }
  }, false);
});
javascript google-apps-script iframe
1个回答
0
投票

我决定获取我想要的参数并将其注入到 iframe url 中并使用它来提取它:

let urlToken = ''; function
function getUrlParams() {
    google.script.url.getLocation(function(location) {
    urlToken = location.parameters.signupToken[0];
  });
}
© www.soinside.com 2019 - 2024. All rights reserved.