Отладка заблокировала фрейм с ошибкой источника сообщения - PullRequest
0 голосов
/ 08 марта 2020

Я делаю расширение chrome, в этом расширении chrome я добавляю iframe для спойтинга веб-страницы. Однако я пытаюсь изменить содержимое документа iframe, но блокируется фрейм с ошибкой источника.

Вот мой код

создание iframe

  var iframe = document.createElement('iframe');
  iframe.src = chrome.runtime.getURL('/index.html');
  iframe.setAttribute('id','subscription-prompt')
  iframe.style.cssText = 'border:1px solid purple;border-radius:8px;position:fixed;top:25px;right:25px;display:flex;' +
                         'width:300px;height:300px;z-index:15000;';
  newDiv.appendChild(iframe)

доступ к contentWindow

$(function () {  
  var iframeWindow = document.getElementById("subscription-prompt")
  console.log(document.body)
  iframeWindow.contentWindow.postMessage(
    'hello chrome',
    chrome.runtime.getURL('/index.html') // Origin of embedded page
  );

  chrome.runtime.onMessage.addListener(
    console.log(document.getElementById('subscription-prompt').contentWindow)
    //document.getElementById('subscription-prompt').contentWindow.document.getElementById('title').innerHTML = 'works'

  );


}); 

Тем не менее, я все еще получаю сообщение об ошибке: заблокирован кадр с источником "https://www.spotify.com" из-за доступа к кадру с источником "chrome -extension: // ajhekomgfmlogkidfmfehhgpdjcgijng" , Кадр, запрашивающий доступ, имеет протокол «https», а кадр, к которому осуществляется доступ, имеет протокол «chrome -extension». Протоколы должны совпадать.

Что я делаю не так? Как я могу это исправить? Я убедился, что сообщение отправляется, так как функция addlistener работает, но он не дает мне доступ к contentWindow

...