찾다
웹 프론트엔드JS 튜토리얼js 도메인 간 문제 도메인 간 iframe 적응형 크기 구현 code_javascript 기술

코드 복사 코드는 다음과 같습니다.


<script> <BR>function setHeight(){ <BR>var dHeight = document.documentElement.scrollHeight; <BR>var t = document.createElement("div"); <BR>t. innerHTML = ' <iframe id="kxiframeagent" src="http://rest.kaixin001.com/api/agent.html#' dHeight '"scrolling="yes" height="0px" width="0px"&gt ;< /iframe>'; <BR>document.documentElement.appendChild(t.firstChild) <BR>} <BR></script>

나중에 인터넷에서 검색하다가 갑자기

을 깨달았습니다. 다음과 같이 복사했는데 모두가 구현 아이디어를 이해하는 데 집중했습니다.


질문 :

도메인 A의 페이지 a.htm은 iframe을 통해 도메인 B의 페이지 b.html에 삽입됩니다. b.html의 크기는 예측할 수 없고 변경되므로 iframe은 적응형입니다. a.htm의 크기가 필요합니다.

문제의 본질:

JS 교차 도메인 문제. a.htm의 경우 먼저 b.html의 크기를 읽어야 하며 A와 B는 동일한 도메인에 속하지 않습니다. js의 액세스가 제한되어 b.html의 크기를 읽을 수 없습니다. 🎜>해결책:

우선 전제는 A, B는 협력관계, b.html은 A가 제공하는 js를 소개할 수 있다
먼저 a.html은 소개한다 iframe을 통한 b.html




코드 복사 코드는 다음과 같습니다. < ;iframe id="aIframe" height="0" width="0" src="http:// www.b.com/html/b.html"frameborder="no" border="0px" marginwidth="0 " marginheight="0" scrolling="no"allowtransparency="yes" >


B는 A가 제공하는 js 파일을 b.html에 소개했습니다
Html 코드




js는 먼저 b .html 너비와 높이를 읽은 다음 iframe을 생성합니다. src는 동일한 도메인에 있는 중간 프록시 페이지 a_proxy.html입니다. A, src
Html 코드




a_proxy.html은 도메인 A 아래에 제공되는 좋은 중간 프록시 페이지입니다. 너비와 높이 값을 읽는 역할을 담당합니다. ​​​​location.hash에서 동일한 도메인 아래의 a.html에서 iframe의 너비와 높이를 설정합니다.



코드 복사
코드는 다음과 같습니다. var pParentFrame = parent.parent.document.getElementById("aIframe") var locationUrlHash = parent .parent.frames["aIframe"].frames["iframeProxy"].location.hash; pParentFrame.style.width = locationUrlHash.split("#")[1].split("|")[0 ] "px";
pParentFrame.style.height = locationUrlHash.split("#")[1].split("|") [1] "px"
var pParentFrame = parent.parent.document .getElementById("aIframe");
var locationUrlHash = parent.parent.frames["aIframe"].frames["iframeProxy"].
pParentFrame.style.width = locationUrlHash.split(" #")[1].split("|")[0] "px";
pParentFrame.style.height = locationUrlHash.split ("#")[1].split("|")[1] "px";


이 경우 a.html의 iframe은 b.html의 너비와 높이에 맞춰집니다.

다른 유사한 js 교차 도메인 작업 문제가 발생할 수 있습니다. 또한 이 아이디어에 따라 해결됩니다.
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP Session 跨域问题的解决方法PHP Session 跨域问题的解决方法Oct 12, 2023 pm 03:00 PM

PHPSession跨域问题的解决方法在前后端分离的开发中,跨域请求已成为常态。在处理跨域问题时,我们通常会涉及到session的使用和管理。然而,由于浏览器的同源策略限制,跨域情况下默认情况下无法共享session。为了解决这个问题,我们需要采用一些技巧和方法来实现session的跨域共享。一、使用cookie跨域共享session最常

微软:每次访问时 Outlook 错误都会下载“TokenFactoryIframe”文件微软:每次访问时 Outlook 错误都会下载“TokenFactoryIframe”文件Apr 19, 2023 am 08:25 AM

当用户通过Safari浏览器访问电子邮件服务时,微软的Outlook正在macOS上下载一个名为“TokenFactoryIframe”的神秘文件。发现Outlook在每次访问时下载的“TokenFactoryIframe”文件的用户现已广泛报告此问题。Outlook每隔几秒或至少在每次访问Apple平台上的Outlook时都会下载此神秘文件。根据我们的调查结果,这似乎是由发布到Outlook的服务器端更新错误引起的问题,与Safari或macOS无关。微软在一份

Vue 中如何进行跨域请求?Vue 中如何进行跨域请求?Jun 10, 2023 pm 10:30 PM

Vue是一种流行的JavaScript框架,用于构建现代化的Web应用程序。在使用Vue开发应用程序时,常常需要与不同的API交互,而这些API往往位于不同的服务器上。由于跨域安全策略的限制,当Vue应用程序在一个域名上运行时,它不能直接与另一个域名上的API进行通信。本文将介绍几种在Vue中进行跨域请求的方法。1.使用代理一种常见的跨域解决方案是使用代理

如何使用Flask-CORS实现跨域资源共享如何使用Flask-CORS实现跨域资源共享Aug 02, 2023 pm 02:03 PM

如何使用Flask-CORS实现跨域资源共享引言:在网络应用开发中,跨域资源共享(CrossOriginResourceSharing,简称CORS)是一种机制,允许服务器与指定的来源或域名之间共享资源。使用CORS,我们可以灵活地控制不同域之间的数据传输,实现安全、可靠的跨域访问。在本文中,我们将介绍如何使用Flask-CORS扩展库来实现CORS功

如何在HTML中允许跨域使用图像和画布?如何在HTML中允许跨域使用图像和画布?Aug 30, 2023 pm 04:25 PM

为了允许跨域使用图像和画布,服务器必须在其HTTP响应中包含适当的CORS(跨域资源共享)头。这些头可以设置为允许特定的来源或方法,或者允许任何来源访问资源。HTMLCanvasAnHTML5CanvasisarectangularareaonawebpagethatiscontrolledbyJavaScriptcode.Anythingcanbedrawnonthecanvas,includingimages,shapes,text,andanimations.Thecanvasisagre

iframe能做什么iframe能做什么Aug 23, 2023 pm 03:50 PM

iframe用途有嵌入其他网页、广告展示、跨域通信、内容分割、安全隔离、框架集成等。详细介绍:1、嵌入其他网页,在一个网页中嵌入另一个网页,通过使用iframe,可以将这些内容无缝地嵌入到网页中;2、广告展示,iframe可以用于显示广告内容;3、跨域通信,由于安全原因,浏览器限制了不同源之间的直接通信,但是通过使用iframe可以在不同源之间进行通信;4、内容分割等等。

什么是layui iframe什么是layui iframeAug 23, 2023 pm 03:55 PM

Layui是一款轻量级的前端UI框架,iframe是HTML中的一个元素,用于在网页中嵌入另一个网页。在Layui框架中,layui iframe是指Layui提供的一种特殊的页面加载方式,用于在当前页面中加载另一个页面。

Vue技术开发中遇到的跨域问题及解决方法Vue技术开发中遇到的跨域问题及解决方法Oct 08, 2023 pm 09:36 PM

Vue技术开发中遇到的跨域问题及解决方法摘要:本文将介绍在Vue技术开发过程中,可能遇到的跨域问题以及解决方法。我们将从导致跨域的原因开始,然后介绍几种常见的解决方案,并提供具体代码示例。一、跨域问题的原因在Web开发中,由于浏览器的安全策略,浏览器会限制从一个源(域、协议或端口)请求另一个源的资源。这就是所谓的“同源策略”。当我们在Vue技术开发中,前端与

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.