目前,掌握了图像,视频和音频的嵌入,下面来谈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. 2018-2019 网络对抗技术 20165231 Exp4 恶意代码分析

    实验目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systrac ...

  2. C# 断言 Assert

    重构-断言 现象:某一段代码需要对程序状态做出某种假设 做法:以断言明确表现这种假设 动机: 常常有这种一段代码:只有某个条件为真是,该改名才能正常运行. 通常假设这样的假设并没有代码中明确表现出来, ...

  3. [JavaScript]ECMA-6 箭头函数

    概述 箭头函数的作用是为Js提供一种函数的简写方法,箭头函数作用域内不包含this, arguments, super, or new.target,并且不能用于对象的构造函数: 基本语法 [(][p ...

  4. git 命令笔记

    切换 git 远程仓库HEAD分支 $ git remote set-head origin some_branch

  5. 1、js的基本对象和垃圾回收

    js常用的基本类型:Undefined,null,string,number,boolen 还有一种复杂的数据类型 object.判断类型可以用 typeof. 确定值是否是有穷的,isFinite, ...

  6. python vs C++ 类

    1. 什么是动态语言(wikipedia) 在运行时,可以进行一些操作(静态语言在编译时执行),比如扩展对象的定义.修改类型等 2. 定义类和创建对象 C++ python class A{ publ ...

  7. oracle INS-13001 环境不满足最低要求

    使用windows10等系统安装oracle 11g等版本的数据库时,经常会发现开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...

  8. 学习java23种设计模式自我总结

    首先先做个广告,以前看过@maowang 这位大神转的Java开发中的23种设计模式详解(转) ,但是看了之后都忘差不多了, 所以,开个帖子边学习边自我总结(纯手敲).一直以来像这种需要长久的运动,真 ...

  9. 关于解决微信支付sdk中NoClassDefFoundError: Failed resolution of: org.apache.http.conn.ssl.DefaultHostnameVerifier;

    导入依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>ht ...

  10. [原创]Zynq SDIO WIFI SotfAP调试

    编译好kernel和driver 加载firmware后,运行下述命令. mkdir /var/run/ mkdir /var/run/hostapd   ifconfig -a           ...