Можно ли использовать содержимое внутри Iframe во внешнем документе? (иначе удалите кнопку из Iframe и используйте ее в пользовательском интерфейсе веб-страницы).
Я попробовал следующее в angular проекте, я застрял в получении содержимого iframe:
<iframe appLoaded id="superposition" height="700" width="1500" src="https://wwf.org" frameborder="0"></iframe>
и в директиве, следовательно, "apploaded" в iframe:
@Directive({
selector: 'iframe [appLoaded]'
})
export class LoadedDirective {
@HostListener("load", ["$event.srcElement"])
onLoaded(target: HTMLIFrameElement)
{
try
{
console.log(target)
}
catch(err){
console.log(err)
}
}
}
это даст мне полный элемент <iframe>
после загрузки, но когда я пытаюсь получить документ внутри iframe:
console.log(target.contentDocument)
возвращает ноль. И если я попробую contentWindow:
console.log(target.contentWindow)
, то вернется эта ошибка:
DOMException: Blocked a frame with origin "http://localhost:4200" from accessing a cross-origin frame.
at console.log (<anonymous>)
at LoadedDirective.onLoaded (http://localhost:4200/main.js:454:21)
at LoadedDirective_load_HostBindingHandler (http://localhost:4200/main.js:473:144)
at executeListenerWithErrorHandling (http://localhost:4200/vendor.js:54143:16)
at wrapListenerIn_markDirtyAndPreventDefault (http://localhost:4200/vendor.js:54185:22)
at HTMLIFrameElement.<anonymous> (http://localhost:4200/vendor.js:104292:38)
at ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:621:35)
at Object.onInvokeTask (http://localhost:4200/vendor.js:71477:33)
at ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:620:40)
at Zone.runTask (http://localhost:4200/polyfills.js:389:51)
Что я здесь не так делаю?