当我尝试与iframe互动时出现Chrome错误

时间:2019-11-14 11:55:43

标签: javascript iframe

我正在制作一个用于修改iframe的内部工具,但是chrome抛出错误。

这是我的html:

<iframe src="https://sportmaniacs.com/es/services/inscription/mitja-marato--10k-ciutat-de-tarragona-2019/5d63d5fc-bb64-4c09-98d6-7440ac1f1c51"
    frameborder="0"
></iframe>

这是我的js:

  const iframe =  this.iframe.nativeElement
  if ( (iframe.contentDocument || iframe.contentWindow.document).readyState === 'complete' ) {
    iframe.onload = this.onIframeLoad.bind(this)
  } else {
    if (iframe.addEventListener) {
      iframe.addEventListener('load', this.onIframeLoad.bind(this), true)
    } else if (iframe.attachEvent) {
      iframe.attachEvent('onload', this.onIframeLoad.bind(this))
    }
  }

  function onIframeLoad() {
    const base64String = this.iframe.nativeElement.contentWindow.document.body.innerHTML
    console.log(this.iframe.nativeElement.contentWindow.document.body.children[1].currentSrc)
    console.log(base64String)
  }

但是此代码: iframe.contentWindow.document

此错误的方式: Blocked a frame with origin "http://localhost:5200" from accessing a cross-origin frame

我可以跳过错误吗?也许带有插件之类的东西...

1 个答案:

答案 0 :(得分:0)

解决方法已在此处描述:SecurityError: Blocked a frame with origin from accessing a cross-origin frame

仅当您同时拥有两个网站时,它才有效。

否则,您可以在浏览器中禁用same-origin-policy,但是就像它说的那样,它只会影响您的浏览器。