如何从 iframe 的父级继承字体样式

问题描述 投票:0回答:1

如何从 iframe 的父级继承字体。 如果这是不可能的,还有什么替代方案吗?

我维护一个小网站。主菜单如下所示:

<!DOCTYPE html>
<html lang="nl">
  <meta charset="utf-8">
  <title>Container for iframe</title>
  <style>
    html, body, #main   { height: 100%; }
    iframe              { height: 100%; width: 100%;}
    body, #main         { font-family: sans-serif; }
    #main               { background-color: azure; }
    iframe, #main       { height: 100%; width: 100%; }
  </style>
  
  <p>Container for iframe</p>
  <p><a href="choice-1.html" target="content">Inherit font from iframe</a>
  <p><a href="choice-2.html" target="content">Choice two</a>
  
  <div id="main" style="background-color: azure; color: red">
   <p>Show iframe below:
   <iframe name="content" src="choice-1.html">
    <p>Fall back.
   </iframe>
  </div>
</html>

这是子页面的html:

<!DOCTYPE html>
<html lang="nl">
<meta charset="utf-8">
<title>Test</title>
<style>
html, body {font-family: inherit;}
</style>
<h1>I am choice one</h1>
<p>I try to inherit the font from my parent, but failed...
</html>

问题是该网站应该可由对 html、css 和 javascript 知识有限的人进行管理。一个简单的解决方案将不胜感激。

javascript html css iframe href
1个回答
0
投票

Iframe 不会自动从父页面继承样式。但是,您可以在 iframe 的 URL 中将字体样式作为参数传递。

src="choice-1.html?font=sans-serif"

通过这种方式将字体信息发送到子页面,子页面可以从 URL 检索。您可以使用名为 URLSearchParams 的 JavaScript 功能来实现此目的。

这是您需要添加到子页面的脚本:

<script>
 const urlParams = new URLSearchParams(window.location.search);
 const font = urlParams.get('font');
 if (font) {
     document.body.style.fontFamily = font;
 }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.