Как устранить ошибку «кадр заблокирован ... перекрестное происхождение ..», когда происхождение фактически совпадает? - PullRequest
0 голосов
/ 09 июня 2019

Открывается всплывающее окно из файла TBA на боковой панели.

Ошибка вызвана попыткой указать глобальную переменную json в средстве открытия боковой панели из всплывающего окна, в котором источник путаетсяЯ думаю.

1 Ответ

0 голосов
/ 14 июня 2019

SendMessages

Как вы можете видеть на скриншоте, я смог перенести объект json из интерфейса TBA на боковой панели во всплывающее окно и наоборот. window.postMessage() сделал свое дело. Не так хорошо, как наличие nset (иерархии именованных наборов) в родительском элементе iframes, но, думаю, работоспособного. Возможно, для большей скорости и гибкости nset можно разделить на пакеты общего доступа и ответственности.

Не просто картинка; вот код:

во всплывающем окне

window.addEventListener("message", receiveMessage, false);

function start(){
  $(document).ready(function(){
    root = '1grsin';
    trial = 'msm4r';
    orig = 'ozs29';
    code = orig;
    path = "https://api.myjson.com/bins/"+code;
    $.get(path)
   .done((data, textStatus, jqXHR)=>{
     nset = data;
     opener.postMessage(nset,"https://n-rxnikgfd6bqtnglngjmbaz3j2p7cbcqce3dihry-0lu-script.googleusercontent.com");
   })
  })
}

    function receiveMessage(event) {
      console.log(event.data);
      $("#notice").html("Origin: "+ event.origin)
    }

В TBA на боковой панели

window.addEventListener("message", receiveMessage, false);

var popup;

function openMonitor(nset){
   var params = [
      'height=400',
      'width=400'
   ].join(',');
    let file = 'http://glasier.hk/blazer/model/model.html';
    popup = window.open(file,'popup_window', params); 
    popup.moveTo(100,100);
  }

  function receiveMessage(event) {
    console.log("origin: " +event.origin);
    console.log(event.data);
    popup.postMessage(nset, "http://glasier.hk");
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...