目前,掌握了图像,视频和音频的嵌入,下面来谈iframe和embed、object嵌入网页,

嵌入简史,刚开始流行用嵌入框架然后不同部分显示i不同内容,可以解决下载速度慢时的问题;

慢慢的插件技术流行,java applet和flash的出现,能够将内容嵌入到网页中,视频和动画,这些通过<object>和<embed>元素来实现,  到现在<iframe>元素出现,连同<canvas><video>出现,提供将一个整个web网页嵌入另一个网页的方法。

Iframe详解

  允许您将其他web文档嵌入到当前文档中,将第三方网站纳入您的网站,下面直接引入一个实例,

<iframe src="https://developer.mozilla.org/en-US/docs/Glossary"
width="100%" height="500" frameborder="0"
allowfullscreen sandbox>
<p> <a href="https://developer.mozilla.org/en-US/docs/Glossary">
Fallback link for browsers that don't support iframes
</a> </p>
</iframe>

此实例包含iframe基本要素如下:

allowfullscreen 设置后可以通过全屏API设置为全屏模式,

frameborder 设置为1,告诉浏览器在此框架和其他框架之间绘制边框,默认行为;如果是0,删除边框,因为CSS可以更好实现相同效果,border:none;

src 与img标签里一样,

width 和height 指定框架的宽度的高度

同样iframe里的p段落也是i备选内容,如果不支持将显示备选内容;

sandbox 用于安全设置,iframe的src属性应该在页面主内容加载完之后使用javascript设置iframe的src属性会更好,可以让页面快速被使用。

  安全问题,黑客选择iframe作为攻击目标,也叫攻击向量。单机劫持是一种常见的iframe攻击,黑客将隐藏的iframe嵌入到您的文档中,并使用其捕获用户的交互,误导用户来窃取敏感数据。对于iframe只在必要时嵌入,也要考虑侵权的问题,适当标注来源。

  使用HTTPS 是http的加密版本,https减少了远程内容在传输过程种被篡改的机会;防止嵌入式内容访问您的父文档中的内容。通过HTTPS来嵌入iframe;

  始终使用sandbox属性,也叫沙盒属性,即iframe内容只给与部分权限,那么未沙盒化的unsandbox内容可以执行的操作太多。

  配置CSP指令

csp代表内容安全策略,提供一组HTTP标头,由web服务器发送时与元素据一起发送的元数据,旨在提高HTML文档的安全性,在服务器端配置为发送适当的X-Frame-Options标题。

  <embed><object>元素。

不同于<iframe> 这些个元素是用来嵌入多种类型的外部内容的通用嵌入工具,包括java小程序和flash,PDF,插件技术,SVG内容。 插件是一种对浏览器原生无法读取的内容提供访问权限的去软件。   如果需要插件内容,需要下面的信息:

  嵌入内容的网址,src  嵌入内容的媒体类型 type   ; 有插件控制的框高度和宽度,width、height

名称和值,作为参数的提供,   独立的HTML内容作为不可用的资源回退。

  typemustmatch保持嵌入文件不运行,当嵌入来自不同来源的内容,防止攻击者通过插件运行任意脚本,可以赋予更重要的安全优势。

  接下来考虑<embed>元素嵌入Flash影片的示例,

<embed src="whoosh.swf" quality="medium"
bgcolor="#ffffff" width="550" height="400"
name="whoosh" align="middle" allowScriptAccess="sameDomain"
allowFullScreen="false" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">

代码非常混乱,这种情况开始减少被认为没必要。再来看一个object嵌入pdf的例子;

<object data="mypdf.pdf" type="application/pdf"
width="800" height="1200" typemustmatch>
<p>You don't have a PDF plugin, but you can <a href="myfile.pdf">download the PDF file.</a></p>
</object>

pdf是纸与数据之间的阶梯,通过链接指向可以直接在单独的页面被下载或被阅读。

  总结,这篇主要还是讲web文档三个插入元素的使用方式,和带来的一些问题。

HTML入门10的更多相关文章

  1. JavaScript基础入门10

    目录 JavaScript 基础入门10 正则表达式 为什么使用正则表达式? 正则表达式的应用场景 如何创建一个正则表达式 基础语法 具有特殊意义的转义字符 量词 字符类 贪婪模式 练习 邮箱验证 中 ...

  2. Cesium入门10 - 3D Tiles

    Cesium入门10 - 3D Tiles Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 我们团队有时把Ces ...

  3. SLAM+语音机器人DIY系列:(二)ROS入门——10.在实际机器人上运行ROS高级功能预览

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  4. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  5. SVG 2D入门10 - 滤镜

    滤镜称得上是SVG最强大的功能了,它允许你给图形(图形元素和容器元素)添加各种专业软件中才有的滤镜特效.这样你就很容易在客户端生成和修改图像了.而且滤镜并没有破坏原有文档的结构,所以维护性也很好.   ...

  6. 机器学习入门10 - 正则化:简单性(Regularization for Simplicity)

    原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-simplicity 正则化指的 ...

  7. springcloud 入门 10 (eureka高可用)

    eureka高可用: 说白了,就是加一个实例作为原实例的备份,然后一起对外提供服务.这样可以保证在一台机器宕机的时候,整个系统不会死掉.保证其继续对外服务. eureka的集群化: 服务注册中心Eur ...

  8. python入门10 循环语句

    两种循环: 1 for in 2 while #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 循环语句 ...

  9. TTS-零基础入门-10分钟教你做一个语音功能

    在本片博客正式開始之前,大家先跟我做一个简单的好玩的 小语音. 新建一个文本文档,然后再文档里输入这样 一句话  CreateObject("SAPI.SpVoice").Spea ...

  10. pandas入门10分钟——serries其实就是data frame的一列数据

    10 Minutes to pandas This is a short introduction to pandas, geared mainly for new users. You can se ...

随机推荐

  1. Centos6.8 yum安装MySQL5.6

    第一步:安装仓库wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpmrpm -ivh mysql-communi ...

  2. Gitlab_ansible_jenkins三剑客⑤jenkins Pipeline-job的使用

    Pipeline-job的使用 创建Pipeline任务 找到root用户的id 编写pipeline脚本 #!groovy pipeline{ agent {node {label 'master' ...

  3. WPF 10天修炼 第五天- 内容控件

    WPF内容控件 在WPF中,所有呈现在用户界面上的对象都称为用户界面元素.但是只有派生自System.Windows.Controls.Control类的对象才称为控件.内容控件通常是指具有Conte ...

  4. 获取页面所有a标签href

    for(i=0;i<=document.getElementsByTagName("a").length;i++){ console.log(document.getElem ...

  5. vue-router路由动态传参query和params的区别

    1.query方式传参和接收参数 //路由 { path: '/detail', //这里不需要参入参数 name: "detail", component: detail//这个 ...

  6. C# 定时任务

    工作中需要做个每天定时发邮件的功能,了解之后知道java里有做定时任务比较容易的方法,就是Quartz,在C#里叫Quartz.Net. 在写代码之前需要引用几个dll文件,分别是C5.dll.Com ...

  7. 2-1、FileBeat入门

    FileBeat入门 要开始使用Filebeat设置,请安装并配置相关产品: 用于存储和索引数据的Elasticsearch. 用户界面的Kibana. 用于解析和增强数据的Logstash(可选). ...

  8. 2018-2019-2 20165328《网络对抗技术》Exp0 Kali安装week1

    1.下载Kaili安装资源并解压安装到虚拟机: 2.修改默认字体与共享文件设置: 3.更新软件源与下载中文输入法: 4.安装完成.

  9. Nginx下完美解决WordPress的伪静态 (wordpress 迁移后 导致 页面404)

    直奔主题 如何设置WordPress在 Nginx下的伪静态 第一步:按照文章名为例,登陆后台按照箭头顺序修改固定连接,点击保存更改 第二步:登陆宝塔面板后台,按照文件路径 找到属于要配置域名的con ...

  10. .net基础学java系列(五)慢性自杀 之 沉沦在IDE中

    最近在慢学习IDEA,总是喜欢与Visual Studio! 其实,对于Visual Studio,它的官方(https://docs.microsoft.com/zh-cn/visualstudio ...