您现在的位置是:知识 >>正文
html嵌入网页
知识56人已围观
简介把一段HTML塞进网页里,最直接的办法就是打开一个文本编辑器,敲下标签,保存成.html文件,然后双击它。浏览器会老老实实把那些尖括号翻译成你想要的页面。这件事没什么神秘的,二十年前大家这么干,现在还 ...
把一段HTML塞进网页里,嵌入最直接的网页办法就是打开一个文本编辑器,敲下标签,嵌入保存成.html文件,网页然后双击它。嵌入浏览器会老老实实把那些尖括号翻译成你想要的网页页面。这件事没什么神秘的嵌入,二十年前大家这么干,网页现在还是嵌入这么干。
但“嵌入”这个词在网页开发里其实有好几层意思。网页最常见的嵌入一种,是网页你已经有了一整页HTML,但想在某一块区域里再放一段独立的嵌入内容。这时候直接用<div>包起来就行,网页浏览器渲染的嵌入时候会把它当成普通元素处理。问题是,如果那段内容来自别处——比如另一个页面、一段用户提交的富文本、或者第三方服务返回的代码片段——你就得考虑它会不会跟当前页面的样式打架。
我遇到过最典型的情况,是往一个已经用了CSS框架的页面里嵌一段旧版HTML。那段旧代码带着自己的<style>标签,里面写死了body { background: #fff; }。浏览器一读,整个页面的背景全白了,框架的深色主题直接报废。解决办法是用<iframe>把它隔开。iframe会创建一个独立的浏览上下文,里面的CSS和JS都跑在自己的小天地里,不会漏出来影响父页面。代价是iframe里的内容不会自动撑开高度,你得手动算或者用postMessage通信来调整。我一般只在确实需要隔离的时候才用它,比如嵌入地图、视频播放器、或者第三方评论系统。
另一种嵌入方式是动态的。页面加载完了,用户点了个按钮,你想把一段HTML字符串插进某个<div>里。用innerHTML最省事,但有个坑:如果那段字符串里带<script>标签,浏览器不会执行它。这是规范定的,防止XSS攻击。真要执行脚本,得用document.createElement('script')手动创建,设置src或textContent,再appendChild到文档里。我见过有人为了省事用eval,那基本等于把安全门拆了。
还有一种是嵌入外部页面的局部。比如你有个导航栏,想在每个页面复用。以前大家用<iframe>或者JS的XMLHttpRequest去拉一段HTML片段回来插进去。现在更常见的是用fetch加DOMParser,或者干脆上Web Components。Web Components里的<template>和<slot>能把结构、样式、逻辑打包成一个自定义标签,用的时候写一行<my-nav></my-nav>就完事。不过它的浏览器兼容性虽然已经不错,但跟老项目混用的时候还是得小心。
说个具体的。上个月帮朋友改一个活动页,他要在页面中间嵌一个报名表单。表单是另一个系统生成的,给了一段<script src="https://example.com/form.js"></script>。直接贴进去,表单是出来了,但把页面原有的轮播图挤到了下面,因为那段脚本往document.body里直接appendChild了一个div。我看了下它的源码,发现它支持一个target参数,可以指定挂载点。改成<div id="form-container"></div>加<script>Form.render({ target: '#form-container' })</script>,问题解决。所以嵌入第三方代码之前,先翻翻它的文档,看有没有指定容器的选项,能省很多事。
最后提一句<object>和<embed>。这俩现在主要用来嵌PDF、SVG或者Flash的遗产。SVG其实可以直接内联在HTML里,用<svg>标签,这样还能用CSS控制它的颜色和动画。我更喜欢内联SVG,比<img src="icon.svg">灵活得多。至于<object>,除非你要嵌PDF并且需要控制打印行为,否则用得越来越少。
嵌入这件事,核心就一句:想清楚那段HTML跟当前页面的边界在哪。边界清晰,用<div>或<template>;边界模糊或者有冲突风险,上<iframe>。没有银弹,只有具体场景下的取舍。
Tags:
上一篇:漏洞公安局
下一篇:传奇网站劫持修复工具
相关文章
围挡坎墙漏洞补砌的施工工艺
知识围挡坎墙的漏洞,多半不是一朝一夕形成的。去年秋天我在一个市政工地看到,一段三十米长的坎墙,光拳头大的窟窿就有七个,有的洞眼周边砖块已经酥了,手指一抠就掉渣。这种活儿,瓦工师傅们管它叫“补窟窿”,听着简 ...
【知识】
阅读更多wmap环境
知识WMAP环境,说到底就是围绕威尔金森微波各向异性探测器Wilkinson Microwave Anisotropy Probe)建立起来的那套数据获取、处理、存档和分发的软硬件体系。它不像哈勃望远镜那 ...
【知识】
阅读更多新闻报纸容易发黄变脆主要是因为
知识旧报纸放久了会变黄、发脆,一碰就掉渣。这不是纸的质量问题,而是纸张内部在发生化学反应。罪魁祸首是造纸时残留的木质素。 十九世纪中期以前,西方造纸主要用破布。破布纸的主要成分是纤维素,化学性质稳定,放几 ...
【知识】
阅读更多