gpt4 book ai didi

javascript - iframe 不使用 srcdoc 属性加载样式

转载 作者:行者123 更新时间:2023-11-28 19:27:45 25 4
gpt4 key购买 nike

我在 Angular 组件中使用 iframe,并且在使用 src 属性加载网站时,样式和内容都非常好。当尝试使用 srcdoc 属性将静态 html 作为字符串加载时,似乎只有 HTML 正在呈现。以下是一个非常基本的示例,我已将其简化为仍未加载样式。

import {
Component,
OnInit,
ViewEncapsulation
} from '@angular/core';

@Component({
selector: 'app-newsletter-viewer',
templateUrl: './newsletter-viewer.component.html',
styleUrls: ['./newsletter-viewer.component.scss'],
encapsulation: ViewEncapsulation.ShadowDom
})
export class NewsletterViewerComponent implements OnInit {
newsletterSrcDoc: string;
constructor() {}

ngOnInit() {
this.newsletterSrcDoc = `
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" />
<style>
p {
color: red;
font-size: 2em;
}
</style>
</head>
<body>
<div class="page">
<div id="template2">
<div class="section-cover-photo">
<div class="col">
<div class="container">
<img src="" class="cover-photo">
<div class="banner-template2">
<h1>Test Title</h1>
<p>This is a test document.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
`;
}

}
.wrap {
width: 170px;
height: 220px;
padding: 0;
overflow: hidden;
}

.frame {
width: 8.5in;
height: 11in;
border: 0;
-ms-transform: scale(0.25);
-moz-transform: scale(0.25);
-o-transform: scale(0.25);
-webkit-transform: scale(0.25);
transform: scale(0.25);
-ms-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-o-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
<div class="wrap">
<iframe class="frame" [srcdoc]="newsletterSrcDoc"></iframe>
</div>

最佳答案

在 Stack Overflow 上采用不同的方法搜索相关主题后,关于该主题的公认答案似乎对我有用:iframe inside angular2 component, Property 'contentWindow' does not exist on type 'HTMLElement'

据我所知,问题与 Angular 如何/何时选择在 iframe 中呈现 DOM 有关。如果iframe的文档内容是在View(具体是View中的iframe)初始化之后渲染的,那么iframe的<head>网页上完整的 DOM 结构不再省略标签。

关于javascript - iframe 不使用 srcdoc 属性加载样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com