我正在制作一个用于修改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
我可以跳过错误吗?也许带有插件之类的东西...
答案 0 :(得分:0)
解决方法已在此处描述:SecurityError: Blocked a frame with origin from accessing a cross-origin frame
仅当您同时拥有两个网站时,它才有效。
否则,您可以在浏览器中禁用same-origin-policy,但是就像它说的那样,它只会影响您的浏览器。