목차
iframe基本内涵
获取iframe里的内容
在iframe中获取父级内容
iframe的轮询
iframe长轮询
自适应iframe之蜜汁广告
自适应iframe
iframe安全性探索
防嵌套网页
X-Frame-Options
sandbox
resolve iframe跨域
H5的CDM跨域与iframe
postmessage
finally iframe
웹 프론트엔드 HTML 튜토리얼 iframe,我们来谈一谈_html/css_WEB-ITnose

iframe,我们来谈一谈_html/css_WEB-ITnose

Jun 21, 2016 am 08:56 AM
iframe

某大咖说: “iframe是能耗最高的一个元素,请尽量减少使用”

某大牛说: “iframe安全性太差,请尽量减少使用”

wtf, 你们知不知道你们这样浇灭了多少孩纸学习iframe的热情和决心。 虽然,你们这样说的我竟无法反驳,但是iframe强大功能是不容忽视的。 可以看看各大邮箱网站是否还在使用iframe,查查知乎 iframe . iframe不死,我心不灭。现在给大家安利一下iframe.

iframe基本内涵

通常我们使用iframe直接直接在页面嵌套iframe标签指定src就可以了。

<iframe src="demo_iframe_sandbox.htm"></iframe> 
로그인 후 복사

但是,有追求的我们,并不是想要这么low的iframe. 我们来看看在iframe中还可以设置些什么属性

iframe常用属性:1.frameborder:是否显示边框,1(yes),0(no)2.height:框架作为一个普通元素的高度,建议在使用css设置。3.width:框架作为一个普通元素的宽度,建议使用css设置。4.name:框架的名称,window.frames[name]时专用的属性。5.scrolling:框架的是否滚动。yes,no,auto。6.src:内框架的地址,可以使页面地址,也可以是图片的地址。7.srcdoc , 用来替代原来HTML body里面的内容。但是IE不支持, 不过也没什么卵用8.sandbox: 对iframe进行一些列限制,IE10+支持
로그인 후 복사

上面一些tag,会在下文进行穿插说明,单个不好说。

我们通常使用iframe最基本的特性,就是能自由操作iframe和父框架的内容(DOM). 但前提条件是同域. 如果跨域顶多只能实现页面跳转 window.location.href .

那什么是同域/ 什么是跨域呢?

就是判断你的url首部是否一样,下面会有讲解,这里只是提及。

同域不同域的问题:

A:<iframe id="mainIframe" name="mainIframe" src="/main.html" frameborder="0" scrolling="auto" ></iframe>B:<iframe id="mainIframe" name="mainIframe" src="http://www.baidu.com" frameborder="0" scrolling="auto" ></iframe>
로그인 후 복사

使用A时,因为同域,父页面可以对子页面进行改写,反之亦然。

使用B时,不同域,父页面没有权限改动子页面,但可以实现页面的跳转

这里,我们先从简单的开始,当主页面和iframe同域时,我们可以 些什么。

获取iframe里的内容

主要的两个API就是contentWindow,和contentDocument

iframe.contentWindow, 获取iframe的window对象

iframe.contentDocument, 获取iframe的document对象

这两个API只是DOM节点提供的方式(即getELement系列对象)

 var iframe = document.getElementById("iframe1"); var iwindow = iframe.contentWindow; var idoc = iwindow.document;        console.log("window",iwindow);//获取iframe的window对象        console.log("document",idoc);  //获取iframe的document        console.log("html",idoc.documentElement);//获取iframe的html        console.log("head",idoc.head);  //获取head        console.log("body",idoc.body);  //获取body
로그인 후 복사

实际情况如:

另外更简单的方式是,结合Name属性,通过window提供的frames获取.

<iframe src ="/index.html" id="ifr1" name="ifr1" scrolling="yes">  <p>Your browser does not support iframes.</p></iframe><script type="text/javascript">    console.log(window.frames['ifr1'].window);console.dir(document.getElementById("ifr1").contentWindow);</script>
로그인 후 복사

其实window.frames[‘ifr1′]返回的就是window对象,即

window.frames['ifr1']===window
로그인 후 복사

这里就看你想用哪一种方式获取window对象,两者都行,不过本人更倾向于第二种使用frames[xxx].因为,字母少啊喂~ 然后,你就可以操控iframe里面的DOM内容。

在iframe中获取父级内容

同理,在同域下,父页面可以获取子iframe的内容,那么子iframe同样也能操作父页面内容。在iframe中,可以通过在window上挂载的几个API进行获取.

window.parent 获取上一级的window对象,如果还是iframe则是该iframe的window对象window.top 获取最顶级容器的window对象,即,就是你打开页面的文档window.self 返回自身window的引用。可以理解 window===window.self(脑残)
로그인 후 복사

如图: 来个栗子~

ok, 获取了之后,我们就可以进行相关操作了。 在同域的iframe中,我们可以巧妙的使用iframe的黑科技来实现一些trick.

iframe的轮询

话说在很久很久以前,我们实现异步发送请求是使用iframe实现的~!

怎么可能!!!

真的史料为证(自行google), 那时候为了不跳转页面,提交表单时是使用iframe提交的。现在,前端发展尼玛真快,websocket,SSE,ajax等,逆天skill的出现,颠覆了iframe, 现在基本上只能活在IE8,9的浏览器内了。 但是,宝宝以为这样就可以不用了解iframe了,而现实就是这么残酷,我们目前还需要兼容IE8+。所以,iframe 实现长轮询和长连接的trick 我们还是需要涉猎滴。

iframe长轮询

如果写过ajax的童鞋,应该知道,长轮询就是在ajax的readyState = 4的时,再次执行原函数即可。 这里使用iframe也是一样,异步创建iframe,然后reload, 和后台协商好, 看后台哥哥们将返回的信息放在,然后获取里面信息即可. 这里是直接放在body里.

var iframeCon = docuemnt.querySelector('#container'),        text; //传递的信息    var iframe = document.createElement('iframe'),        iframe.id = "frame",        iframe.style = "display:none;",        iframe.name="polling",        iframe.src="target.html";    iframeCon.appendChild(iframe);    iframe.onload= function(){        var iloc = iframe.contentWindow.location,            idoc  = iframe.contentDocument;        setTimeout(function(){            text = idoc.getElementsByTagName('body')[0].textContent;            console.log(text);            iloca.reload(); //刷新页面,再次获取信息,并且会触发onload函数        },2000);    }
로그인 후 복사

这样就可以实现ajax的长轮询的效果。 当然,这里只是使用reload进行获取,你也可以添加iframe和删除iframe的方式,进行发送信息,这些都是根据具体场景应用的。另外在iframe中还可以实现异步加载js文件,不过,iframe和主页是共享连接池的,所以还是很蛋疼的,现在基本上都被XHR和hard calllback取缔了,这里也不过多介绍了。

自适应iframe之蜜汁广告

网页为了赚钱,引入广告是很正常的事了。通常的做法就是使用iframe,引入广告地址就可以了,然后根据广告内容设置相应的显示框。但是,为什么是使用iframe来进行设置,而不是在某个div下嵌套就行了呢?

要知道,广告是与原文无关的,这样硬编码进去,会造成网页布局的紊乱,而且,这样势必需要引入额外的css和js文件,极大的降低了网页的安全性。 这些所有的弊端,都可以使用iframe进行解决。

我们通常可以将iframe理解为一个沙盒,里面的内容能够被top window 完全控制,而且,主页的css样式是不会入侵iframe里面的样式,这些都给iframe的广告命运埋下伏笔。可以看一下各大站点是否都在某处放了些广告,以维持生计比如: W3School

但,默认情况下,iframe是不适合做展示信息的,所以我们需要对其进行decorate.

自适应iframe

默认情况下,iframe会自带滚动条,不会全屏.如果你想自适应iframe的话:第一步:去掉滚动条

<iframe src="./iframe1.html" id="iframe1" scrolling="no"></iframe>
로그인 후 복사

第二步,设置iframe的高为body的高

var iwindow = iframe.contentWindow;var idoc = iwindow.document;iframe.height = idoc.body.offsetHeight;
로그인 후 복사

另外,还可以添加其它的装饰属性:

属性 效果
allowtransparency true or false是否允许iframe设置为透明,默认为false
allowfullscreen true or false是否允许iframe全屏,默认为false

看个例子:

<iframe id="google_ads_frame2" name="google_ads_frame2" width="160" height="600" frameborder="0" src="target.html" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true"></iframe>
로그인 후 복사

你可以直接写在内联里面,也可以在css里面定义,不过对于广告iframe来说,样式写在属性中,是best pratice.

iframe安全性探索

iframe出现安全性有两个方面,一个是你的网页被别人iframe,一个是你iframe别人的网页。 当你的网页被别人iframe时,比较蛋疼的是被钓鱼网站利用,然后victim+s留言逼逼你。真.简直了。 所以为了防止页面被一些 不法分子 利用,我们需要做好安全性措施。

防嵌套网页

比如,最出名的 clickhacking 就是使用iframe来 拦截click事件。因为iframe享有着click的最优先权,当有人在伪造的主页中进行点击的话,如果点在iframe上,则会默认是在操作iframe的页面。 所以,钓鱼网站就是使用这个技术,通过诱导用户进行点击,比如,设计一个”妹妹寂寞了”等之类的网页,诱导用户点击,但实际结果,你看到的不是”妹妹”,而是被恶意微博吸粉。

所以,为了防止网站被钓鱼,可以使用window.top来防止你的网页被iframe.

//iframe2.htmlif(window != window.top){    window.top.location.href = correctURL;}
로그인 후 복사

这段代码的主要用途是限定你的网页不能嵌套在任意网页内。如果你想引用同域的框架的话,可以判断域名。

if (top.location.host != window.location.host) {  top.location.href = window.location.href;}
로그인 후 복사

当然,如果你网页不同域名的话,上述就会报错。

所以,这里可以使用try…catch…进行错误捕获。如果发生错误,则说明不同域,表示你的页面被盗用了。可能有些浏览器这样写是不会报错,所以需要降级处理。

这时候再进行跳转即可.

try{  top.location.hostname;  //检测是否出错  //如果没有出错,则降级处理  if (top.location.hostname != window.location.hostname) {     top.location.href =window.location.href;  }}catch(e){  top.location.href = window.location.href;}
로그인 후 복사

这只是浏览器端,对iframe页面的权限做出相关的设置。我们还可以在服务器上,对使用iframe的权限进行设置.

X-Frame-Options

X-Frame-Options是一个相应头,主要是描述服务器的网页资源的iframe权限。目前的支持度是IE8+(已经很好了啊喂)有3个选项:

DENY:当前页面不能被嵌套iframe里,即便是在相同域名的页面中嵌套也不允许,也不允许网页中有嵌套iframeSAMEORIGIN:iframe页面的地址只能为同源域名下的页面ALLOW-FROM:可以在指定的origin url的iframe中加载
로그인 후 복사

简单实例:

X-Frame-Options: DENY拒绝任何iframe的嵌套请求X-Frame-Options: SAMEORIGIN只允许同源请求,例如网页为 foo.com/123.php,則 foo.com 底下的所有网页可以嵌入此网页,但是 foo.com 以外的网页不能嵌入X-Frame-Options: ALLOW-FROM http://s3131212.com只允许指定网页的iframe请求,不过兼容性较差Chrome不支持
로그인 후 복사

X-Frame-Options其实就是将前端js对iframe的把控交给服务器来进行处理。

//jsif(window != window.top){    window.top.location.href = window.location.href;}//等价于X-Frame-Options: DENY//jsif (top.location.hostname != window.location.hostname) {     top.location.href =window.location.href;}//等价于X-Frame-Options: SAMEORIGIN
로그인 후 복사

ok, 上面基本上就是防止自己页面被嵌套而做的一些安全防护工作。 当然,我们面临的安全问题还有一个,就是当iframe别人的页面时,我们需要对其进行安全设限,虽然,跨域时iframe的安全性会大很多,但是,互联网是没有安全的地方。在以前,我们会进行各种trick来防止自己的页面被污染,现在h5提供的一个新属性sandbox可以很好的解决这个问题。

sandbox

sandbox就是用来给指定iframe设置一个沙盒模型限制iframe的更多权限.

sandbox是h5的一个新属性,IE10+支持(md~).

启用方式就是使用sandbox属性:

<iframe sandbox src=”...”></iframe>
로그인 후 복사

这样会对iframe页面进行一系列的限制:

  1. script脚本不能执行

  2. 不能发送ajax请求

  3. 不能使用本地存储,即localStorage,cookie等

  4. 不能创建新的弹窗和window

  5. 不能发送表单

  6. 不能加载额外插件比如flash等

    看到这里,我也是醉了。 好好的一个iframe,你这样是不是有点过分了。 不过,你可以放宽一点权限。在sandbox里面进行一些简单设置

<iframe sandbox=”allow-same-origin” src=”...”></iframe>
로그인 후 복사

常用的配置项有:

配置 效果
allow-forms 允许进行提交表单
allow-scripts 运行执行脚本
allow-same-origin 允许同域请求,比如ajax,storage
allow-top-navigation 允许iframe自身能够进行页面跳转
allow-popups 允许iframe中弹出新窗口
allow-pointer-lock 在iframe中可以锁定鼠标,主要和 鼠标锁定 有关

可以通过在sandbox里,添加允许进行的权限.

<iframe sandbox=”allow-forms allow-same-origin allow-scripts” src=”...”></iframe>
로그인 후 복사

这样,就可以保证js脚本的执行,但是禁止iframe里的javascript执行top.location = self.location。

哎,其实,iframe的安全问题还是超级有的。比如l ocation劫持,Refers检查 等。 不过目前而言,知道怎么简单的做一些安全措施就over了,白帽子们会帮我们测试的。

resolve iframe跨域

iframe就是一个隔离沙盒,相当于我们在一个页面内可以操控很多个标签页一样。如果踩坑的童鞋应该知道,iframe的解决跨域也是很有套套的。

首先我们需要明确什么是跨域。

浏览器判断你跨没跨域,主要根据两个点。 一个是你网页的协议(protocol),一个就是你的host是否相同,即,就是url的首部:

window.location.protocol +window.location.host
로그인 후 복사

具体的例子就是:

需要强调的是,url首部必须一样,比如:二级域名或者IP地址,都算是跨域.

//域名和域名对应ip, 跨域http://www.a.com/a.jshttp://70.32.92.74/b.js//统一域名,不同二级域名。 跨域http://www.a.com/a.jshttp://a.com/b.js
로그인 후 복사

对于第二种方式的跨域(主域相同而子域不同),可以使用iframe进行解决。

在两个不同子域下(某一方使用iframe嵌套在另一方),

即:

http: //www.foo.com/a.html和http: //script.foo.com/b.html

两个文件中分别加上document.domain = ‘foo.com’,指定相同的主域,然后,两个文档就可以进行交互。

//b.html是以iframe的形式嵌套在a.html中//www.foo.com上的a.htmldocument.domain = 'foo.com';var ifr = document.createElement('iframe');ifr.src = 'http://script.foo.com/b.html';ifr.style.display = 'none';document.body.appendChild(ifr);ifr.onload = function(){    var doc = ifr.contentDocument || ifr.contentWindow.document;    // 在这里操纵b.html    alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);};//script.foo.com上的b.htmldocument.domain = 'foo.com';
로그인 후 복사

默认情况下document.domain 是指window.location.hostname. 你可以手动更改,但是最多只能设置为主域名。 通常,主域名就是指不带www的hostname, 比如: foo.com , baidu.com 。 如果,带上www或者其他的前缀,就是二级域名或者多级域名。通过上述设置,相同的domain之后,就可以进行同域的相关操作。另外还可以使用iframe和location.hash,不过由于技术out了,这里就不做介绍了。

H5的CDM跨域与iframe

如果你设置的iframe的域名和你top window的域名完全不同。 则可以使用CDM(cross document messaging)进行跨域消息的传递。该API的兼容性较好 ie8+都支持.

发送消息: 使用postmessage方法

接受消息: 监听message事件

postmessage

该方法挂载到window对象上,即,使用window.postmessage()调用.

该方法接受两个参数:postMessage(message, targetOrigin):

message: 就是传递给iframe的内容, 通常是string,如果你想传object对象也可以。不过使用前请参考这一句话:

Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.

意思就是,希望亲爱的不要直接传Object。 如果有条件,可以使用是JSON.stringify进行转化。这样能保证不会出bug.

targetOrigin: 接受你传递消息的域名,可以设置绝对路径,也可以设置” “或者”/”。 表示任意域名都行,”/”表示只能传递给同域域名。

来个栗子:

<iframe src="http://tuhao.com" name="sendMessage"></iframe>//当前脚本let ifr = window.frames['sendMessage'];   //使用iframe的window向iframe发送message。ifr.postmessage('give u a message', "http://tuhao.com");//tuhao.com的脚本window.addEventListener('message', receiver, false);function receiver(e) {    if (e.origin == 'http://tuhao.com') {        if (e.data == 'give u a message') {            e.source.postMessage('received', e.origin);  //向原网页返回信息        } else {            alert(e.data);        }    }}
로그인 후 복사

当targetOrigin接受到message消息之后,会触发message事件。 message提供的event对象上有3个重要的属性,data,origin,source.

data:postMessage传递进来的值origin:发送消息的文档所在的域source:发送消息文档的window对象的代理,如果是来自同一个域,则该对象就是window,可以使用其所有方法,如果是不同的域,则window只能调用postMessage()方法返回信息
로그인 후 복사

属性的使用方法,如上头那个demo 说的。 很贴切, 很完美~

finally iframe

iframe的大概我们差不多了解了。 想说的是,iframe 在后面会越用越少的。但是应该是不会被w3c标准废除的。到是前端的发展,真尼玛太快了,每过一段时间,一个新工具,新技术的出现,好到是好,不过学的真心蛋疼。不过,我们要以一个大前端的姿态要求我们,md,现在不学,那什么时候学~

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML에서 IFrame을 어떻게 자르나요? HTML에서 IFrame을 어떻게 자르나요? Aug 29, 2023 pm 04:33 PM

인라인 프레임은 HTML에서 iframe이라고 합니다. 레이블은 브라우저가 스크롤 막대와 테두리를 사용하여 다양한 문서를 표시할 수 있는 콘텐츠 내 직사각형 영역을 지정합니다. 현재 HTML 문서 내에 다른 문서를 포함하려면 인라인 프레임을 사용하십시오. 요소에 대한 참조는 HTMLiframe 이름 속성을 사용하여 지정할 수 있습니다. JavaScript에서는 name 속성을 사용하여 요소에 대한 참조도 이루어집니다. iframe은 기본적으로 현재 표시된 웹페이지 내에 웹페이지를 표시하는 데 사용됩니다. iframe을 포함하는 문서의 URL은 "src" 속성을 사용하여 지정됩니다. 구문 다음은 HTML <iframesrc="URL"title="d의 구문입니다.

iframe이 느리게 로드되는 이유는 무엇입니까? iframe이 느리게 로드되는 이유는 무엇입니까? Aug 24, 2023 pm 05:51 PM

iframe 로딩이 느린 이유에는 주로 네트워크 지연, 긴 리소스 로딩 시간, 로딩 순서, 캐싱 메커니즘 및 보안 정책이 포함됩니다. 자세한 소개: 1. 네트워크 지연. 브라우저가 iframe이 포함된 웹 페이지를 로드할 때 iframe의 콘텐츠를 얻기 위해 서버에 요청을 보내야 합니다. 네트워크 지연이 길면 콘텐츠를 얻는 데 시간이 걸립니다. 2. 리소스 로딩 시간이 길거나, 리소스 크기가 크거나, 서버 응답 시간이 길면 로딩 속도가 더욱 느려집니다. 등.

iframe의 데이터 ID는 무엇을 의미합니까? iframe의 데이터 ID는 무엇을 의미합니까? Aug 28, 2023 pm 02:25 PM

iframe의 data-id는 특정 요소의 식별자를 저장하기 위해 HTML 태그에 사용되는 맞춤 속성을 나타냅니다. data-id 속성을 사용하면 iframe 요소에 고유 식별자를 추가하여 JavaScript에서 조작하고 액세스할 수 있습니다. data-id 속성의 이름 지정은 특정 요구 사항에 따라 사용자 정의할 수 있지만 일반적으로 고유성과 가독성을 보장하기 위해 일부 명명 규칙을 따릅니다. data-id 속성은 특정 iframe을 식별하고 조작하는 데에도 사용할 수 있습니다.

Microsoft: Outlook 오류는 방문할 때마다 'TokenFactoryIframe' 파일을 다운로드합니다. Microsoft: Outlook 오류는 방문할 때마다 'TokenFactoryIframe' 파일을 다운로드합니다. Apr 19, 2023 am 08:25 AM

사용자가 Safari를 통해 이메일 서비스에 액세스할 때 Microsoft Outlook은 macOS에서 "TokenFactoryIframe"이라는 신비한 파일을 다운로드하고 있습니다. 이 문제는 이제 방문할 때마다 Outlook이 다운로드하는 "TokenFactoryIframe" 파일을 발견한 사용자들에 의해 널리 보고되었습니다. Outlook은 몇 초마다 또는 적어도 Apple 플랫폼에서 Outlook에 액세스할 때마다 이 신비한 파일을 다운로드합니다. 조사 결과에 따르면 이는 Outlook에 게시된 잘못된 서버 측 업데이트로 인해 발생하는 문제인 것으로 보이며 Safari 또는 macOS와는 관련이 없습니다. 마이크로소프트의 사본

iframe을 대체할 수 있는 기술 iframe을 대체할 수 있는 기술 Aug 24, 2023 pm 01:53 PM

iframe을 대체할 수 있는 기술에는 Ajax, JavaScript 라이브러리 또는 프레임워크, 웹 구성 요소 기술, 프런트 엔드 라우팅 및 서버 측 렌더링이 포함됩니다. 자세한 소개: 1. Ajax는 동적 웹 페이지를 만드는 데 사용되는 기술입니다. 전체 페이지를 새로 고치지 않고도 백그라운드에서 서버와 데이터를 교환하여 페이지의 비동기 업데이트를 달성할 수 있습니다. Ajax를 사용하면 콘텐츠를 보다 유연하게 로드하고 표시할 수 있으며, 다른 페이지를 삽입하기 위해 iframe을 사용할 필요가 없습니다. 또는 React 등과 같은 프레임워크.

iframe의 로딩 이벤트는 무엇입니까? iframe의 로딩 이벤트는 무엇입니까? Aug 28, 2023 pm 01:55 PM

iframe의 로딩 이벤트에는 onload 이벤트, onreadystatechange 이벤트, onbeforeunload 이벤트, onerror 이벤트, onabort 이벤트 등이 포함됩니다. 자세한 설명: 1. onload 이벤트는 iframe을 로드한 후 실행될 JavaScript 코드를 지정합니다. 2. onreadystatechange 이벤트는 iframe 상태가 변경될 때 실행될 JavaScript 코드를 지정합니다.

Python에서 iframe은 무엇을 의미합니까? Python에서 iframe은 무엇을 의미합니까? Aug 25, 2023 pm 03:24 PM

Python의 iframe은 웹 페이지에 다른 웹 페이지나 문서를 삽입하는 데 사용되는 HTML 태그입니다. Python에서는 다양한 라이브러리와 프레임워크를 사용하여 iframe을 처리하고 조작할 수 있으며, 그 중 가장 일반적으로 사용되는 것은 웹 페이지에서 iframe의 콘텐츠를 쉽게 추출하고 조작하고 처리할 수 있는 BeautifulSoup 라이브러리입니다. iframe을 처리하고 조작하는 방법을 아는 것은 웹 개발과 데이터 스크래핑 모두에 매우 유용합니다.

iframe의 위험은 무엇입니까? iframe의 위험은 무엇입니까? Sep 08, 2023 pm 03:14 PM

iframe의 위험은 주로 다음과 같습니다. 1. 악성 웹 페이지는 iframe을 통해 다른 웹 페이지를 로드하고 일부 공격을 수행할 수 있습니다. 2. 동일 출처 정책의 돌파구인 iframe에서 웹 페이지를 로드합니다. 악의적인 공격을 받을 수 있는 도메인 간 통신 전략이 위반될 수 있습니다. 3. 코드 실행 문제, iframe에 로드된 웹 페이지가 JS 코드를 실행할 수 있어 일부 보안 문제가 발생할 수 있습니다. iframe 등을 통해 로드된 콘텐츠를 올바르게 구문 분석하고 색인을 생성할 수 없습니다.

See all articles