本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

写在开篇

假设有一个需求,想要在网页内显示其它网页,怎么搞?很简单,可以用iframe来解决,那啥是iframe?本篇的主题就是它,接下来我们一一解剖它的用法。

嵌入第三方url页面

我们先来两个测试场景,对比一下,啥场景呢?就是可被嵌入的页面和不可被嵌入的页面。

下面这2个页面是不可被嵌入的

  • 嵌入python的官网主页

        彩虹运维技术栈社区主页

效果如下图:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。
  • 嵌入百度主页

        彩虹运维技术栈社区主页

效果如下:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

下面这2个https的页面是可被嵌入的

  • 嵌入zabbix官网的主页

    彩虹运维技术栈社区主页

效果如下图:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。
  • 嵌入prometheus官网主页

        彩虹运维技术栈社区主页

效果如下图:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

好了,测试完上面的两个场景,现在就产生一个疑问了。为什么有的页面可以被嵌入?而有的页面不能被嵌入呢?答案就是:同源策略的限制所致,第三方的web服务器端并没有允许iframe的访问,这就是核心问题之所在。

关于同源策略、以及什么是跨域访问、cookie重写等等这些知识点,以后笔者都会抽时间慢慢给大家逐一剖析哈!咱们目前阶段的主题是放在html中,后续就是css、js,然后就是前端框架vue.js,甚至中途还会讲讲Go、Python方面的知识,Web框架等等。

嵌入本地的页面

小栗子,我们在home.html页面中嵌入本地test.html页面

  • home.html

        彩虹运维技术栈社区主页

  • test.html

        运维开发工程师,攻破前端技能。

        点击查看彩虹运维技术栈社区的微信公众号
        速度点击查看

            function dis_wechat_public_id() {
                document.getElementById("WeChatPublicID").innerHTML = "微信公众号ID:TtrOpsStack"
            }

效果如下图:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

注意到了嘛?在home.html文件的代码中,iframe的src属性只需要指向本地的html文件路径即可,且在用style中还设置了CSS属性的高度和宽度哦!

玩个”障眼法”

什么是”障眼法”?这是笔者对下面小栗子的一个形容词罢了。


        彩虹运维技术栈社区主页

效果如下图:

本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

看到上面的效果了嘛?真真假假,假假真真,不知道的还以为是真的直接访问了apache的官网呢,鬼知道中间还隔了一道中间商。为啥会出现这样的障眼法呢?原因就是style中的CSS属性border在搞鬼,它的值为none,也就是去掉边框的意思。再把宽度和高度调大,撑满整个页面,这个障眼法的效果就出来了。是不是很好玩呢?

写在最后

好了,本篇讲解的HTML iframe知识点就这么愉快的结束了。一个很小的知识点,虽不起眼,但它却是能让我们在未来可以学透更上层技能的基础。还是那句话,基础不牢,地动山摇呀!技能这东西,有时候不仅要向上学,还要向下学,甚至是上下结合的学习。把基础和原理知识打牢,当学习更上层技能时候才会更容易的去理解。有的组件、技能看似热门、高端,其实都是从基础的东西演变而来的,所以,不管是哪个技术领域,基础知识和原理知识的重要性是可想而知了吧?

本文转载于(喜欢的盆友关注我们):

https://mp.weixin.qq.com/s/0OYTYb1elsw50ZkQYUh4hw

Original: https://www.cnblogs.com/ttropsstack/p/16522585.html
Author: 不背锅运维
Title: 本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582298/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • goroutine 和 channel

    应用 实例1 go;collapse:true;;gutter:true; package main</p> <p>import ( "fmt&q…

    Linux 2023年6月8日
    097
  • Pytorch Tensor 维度的扩充和压缩

    维度扩展 x.unsqueeze(n) 在 n 号位置添加 一个维度 例子: import torch x = torch.rand(3,2) x1 = x.unsqueeze(0…

    Linux 2023年6月7日
    0101
  • 2020年12月-第01阶段-前端基础-HTML CSS 项目阶段(四)

    品优购项目(四) 1). 详情页 detail.html 常用单词 名称 说明 主体 de_container 面包屑导航 crumb_wrap 产品介绍 product_intr…

    Linux 2023年6月8日
    0114
  • webshell 免杀

    https://xz.aliyun.com/t/11391 Original: https://www.cnblogs.com/cute/p/16356651.htmlAuthor…

    Linux 2023年5月28日
    0125
  • 如何优雅的处理 accept 出现 EMFILE 的问题

    通常情况下,服务端调用 accept 函数会返回一个新的文件描述符,用于和客户端之间的数据传输 在服务器的开发中,有时会遇到这种情况:当调用 accept 函数接受客户端连接,函数…

    Linux 2023年6月13日
    0106
  • 让Mac界面和Windows界面在Laxcus集群操作系统上合体

    如果一套操作系统,同时拥有苹果Mac风格的图形桌面,和微软Windows风格的图形桌面,你会是一种什么样的体验? 最近,我们公司的GUI研发团队完成了这项技术突破,在持续不断地技术…

    Linux 2023年6月6日
    0118
  • 对比powershell,点评:《七年老运维实战中的 Shell 开发经验总结》

    前言: 《七年老运维实战中的 Shell 开发经验总结》是不错的帖子,建议shell用户搜看。 点评:《七年老运维实战中的 Shell 开发经验总结》 shell除了上述问题外,还…

    Linux 2023年6月14日
    0101
  • Redis的发布订阅及.NET客户端实现

    序言 发布订阅在设计模式中也可以说是观察者模式,针对这个模式是处理对象间一对多的依赖关系的,当一个对象发生变化,其它依赖他的对象都要得到通知并更新。 然而它也有自己的缺点,就是当主…

    Linux 2023年5月28日
    0130
  • 2018部分

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    096
  • TCP/UDP 编程模型

    TCP编程模型 server创建socket套接字 socket套接字–可以理解为文件描述符(file descriptor),UNIX把网络看成文件 /** * @p…

    Linux 2023年6月6日
    0113
  • Shell实现:基本功能

    独立博客阅读地址:https://panqiincs.me/2017/02/26/write-a-shell-basic-functionality/ Shell的功能 Shell…

    Linux 2023年6月7日
    0143
  • Linux tcpdump抓包命令排查

    bash;gutter:true; tcpdump命令行参数介绍:</p> <p>-A 以ASCII格式打印出所有分组,并将链路层的头最小化。 -c 在收到…

    Linux 2023年6月13日
    0102
  • 复杂任务中,流程的解耦设计

    做事不能急,得一步异步的来; 一、业务场景 在系统开发的过程中,必然存在耗时极高的动作,是基于请求响应模式无法解决的问题,通常会采用解耦的思维,并基于异步或者事件驱动的方式去调度整…

    Linux 2023年6月14日
    078
  • 设计模式——–原型模式

    原型模式定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式的核心是一个clone方法,通过该方法进行对象的拷贝。 代码实例 原型模式的优点:性能更加优…

    Linux 2023年6月7日
    083
  • 【Example】C++ 标准库多线程同步及数据共享 (std::future 与 std::promise)

    否则你会像听天书一样懵。(…) ==================================== 在任何语言的多线程编程当中,必然涉及线程的同步及数据的共享,方…

    Linux 2023年6月13日
    0135
  • C++类型转换

    static_cast 相近类型之间的类型 reinterpret_cast 不相近类型之间的类型 const_cast 去掉对象const属性的转换 dynamic_cast 规…

    Linux 2023年6月13日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球