首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将div放在两个iframe上,其中一个iframe具有外部(不同域)内容?

要将div放在两个iframe上,其中一个iframe具有外部(不同域)内容,您可以使用以下方法:

  1. 在主页面中创建两个iframe,一个用于内部内容,另一个用于外部内容。
  2. 使用CSS将div放在两个iframe上。
  3. 使用JavaScript或jQuery处理跨域问题。

以下是一个简单的示例:

HTML:

代码语言:html
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Div on Iframes</title>
   <style>
        .container {
            position: relative;
            width: 100%;
            height: 0;
            padding-bottom: 56.25%;
        }
        .container iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
        .div-on-iframes {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: #fff;
            padding: 10px;
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <div class="container">
       <iframe src="internal.html" frameborder="0"></iframe>
        <div class="div-on-iframes">Div on Iframes</div>
    </div>
    <div class="container">
       <iframe src="https://external.com" frameborder="0"></iframe>
        <div class="div-on-iframes">Div on Iframes</div>
    </div>
   <script>
        // 处理跨域问题
        window.addEventListener('message', function(event) {
            if (event.data === 'loaded') {
                event.source.postMessage('Hello from main page', event.origin);
            }
        });
    </script>
</body>
</html>

internal.html:

代码语言:html
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Internal Iframe</title>
   <script>
        window.addEventListener('message', function(event) {
            if (event.data === 'Hello from main page') {
                console.log('Received message from main page:', event.data);
            }
        });
        window.parent.postMessage('loaded', '*');
    </script>
</head>
<body>
    <h1>Internal Content</h1>
</body>
</html>

这个示例中,我们创建了两个iframe容器,一个用于内部内容(internal.html),另一个用于外部内容(external.com)。我们使用CSS将div放在两个iframe上,并使用JavaScript处理跨域问题。

请注意,这个示例仅用于演示目的,实际应用中可能需要根据具体需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于iframe的移动端嵌套

需求描述 上周接到了新的项目,移动端需要做一个底部有五个导航,点击不同的导航页面主体显示不同的页面,其中两个页面是自己做,而另外三个页面是引用另外三个网址,其中两个网址为内部项目,另外一个外部(涉及跨...外部的页面使用width=device-width,而引用的其中一个页面的width=640,这导致那个页面渲染的时候无法全屏缩小 3.ios下其中一个页面莫名其妙的扩大 4.iframe的页面a...其中一个需求为返回的时候从哪里点出去返回到哪里 7.某个安卓机后返回无法重新加载iframe 解决 声明嵌入的iframe页面其中4个都是内部项目,同源的,所以大部分处理的问题不存在跨问题。...1.嵌入的iframe页面无法滚动 在iframe外层包裹一个div,然后将其设置为可滚动 <div style="webkit-overflow-scrolling: touch;overflow-y...4.iframe的页面a标签的锚点失效 若iframe不涉及跨,网上有兼容代码可以重新设置a标签,跨解决不了,因为跨的情况下,外部页面是无法获取到iframe下的元素的,最后这个导航做了外部跳转。

3.7K60

多应用聚合实践

iframe 中的内容需要等待iframe加载后再开始加载,白屏时间长,体验较差。 iframe 中的内容不会增加主页面的搜索权重,影响 SEO。...此外,需要注意页面和接口请求的跨问题。在子应用中,我们可能把页面和接口放在一个下以避免跨问题;但在将子应用聚合到父应用之后,若父应用和子应用不在同一个,应将接口代理转发一下。...若想设计的通用一些,则需要将子应用打包成一个整体输出,这将导致子应用失去按需加载、资源缓存等优势。 在将子应用的资源文件引入父应用之后,其中定义的全局变量和样式会影响父应用中的其它内容。...、a.js和b.js两个本地外部文件、mobx和react两个外部JS文件。...它的想法是: 把 window 的原生属性(如document,location)拷贝出来,单独放在一个对象,这个对象称为 fakeWindow 给每一个子应用分配一个 fakeWindow 当子应用修改全局变量时

1.6K20
  • web跨解决方案

    这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一下的内容。   ...我们举例说明:   比如一个黑客,他利用iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名和密码登录时,如果没有同源限制,他的页面就可以通过javascript读取到你的表单中输入的内容...特别注意两点: 1、如果是协议和端口造成的跨问题“前台”是无能为力的   2、在跨问题上,仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个两个是否在同一个ip。...-- 要给下面的页面传一个妹子过去 --> <script...JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨HTTP请求这种情况,不能解决不同两个页面之间如何进行JavaScript调用的问题。

    2.7K100

    通信

    更详细的说明可以看下表: 特别注意两点: 第一,如果是协议和端口造成的跨问题“前台”是无能为力的, 第二:在跨问题上,仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个两个是否在同一个...其中jquery的getScript 方法 就是类似那样的方法(通过 GET 方式请求载入并执行一个 JavaScript 文件, 相当于通过src的形式的导入一个外部的js)。...var allCookie = document.cookie; 两个网页一级域名必须相同,只是二级域名不同。...针对iframe 如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。...window.parent.document.body // 报错 如果两个窗口一级域名相同,只是二级域名不同,那么设置一节介绍的document.domain属性,就可以规避同源政策,拿到DOM。

    1.3K40

    Juypter Notebook 前端二次开发

    对应的于templates不同的页面。...所以,对于前端页面的二次开发,主要包含两个部分: 模板文件及CSS样式的修改 控制模块修改(python和js) 其中,jupyter的核心,cell及在线编辑的功能是基于Code Mirror, 该项目是网页实现的代码编辑器...下拉选项修改 比如一个简单需求:修改工具栏下拉的内容,并能通过与父级通讯,实现在下拉切换时,调用外部的方法。...修改下拉的内容 直接修改动态加载页面的js文件,去除不需要的下拉内容,这里不过多说明 与父组件进行 notebook在项目中会作为iframe嵌在页面中,可考虑iframe父子通讯的方法。...这样开发思路可以为: 外部通过postMessage查询iframe(notebook)的状态,询问是否可刷新 内部监听message,并根据编辑状态返回信息 外部拿到编辑器状态,决定是否刷新,并提示用户

    2.6K10

    JavaScript中的沙箱机制探秘:iFrame沙箱实现方案详解

    -- content END --> Run按钮绑定了一个提交表单的动作,并且表单target指向iframeiframe将载入POST请求返回的结果页面。...最后,执行第三方输入的iframe和host不在一个触发了浏览器的跨机制,避免了很多风险,然而仍然存在一些潜在风险,如iframe里的内容还是可以navigate到不同的站点,并且自动运行一些plugin...现在,我们把沙箱运行的服务器和主站服务器(Host)放在不同下,由于跨文档的隔离,Host与沙箱内部环境之间无法直接操作文档流,当沙箱内部需要向外发送HTTP请求或者从Host处获取用户信息时,我们便需要一套通信机制来解决问题...然而在一些情况下我们需要考虑向下兼容,在不同的窗体下由于文档流的隔离,可共享的东西并不多,这其中就包括url和window,通信方案也自然是从这上面做文章。...window.name 相比location hash,window.name值最长支持2MB大小的数据,且它绑定至iframe,即使iframe中重新加载不同页面,window.name的值也不会变

    4.5K10

    无界微前端是如何渲染子应用的?

    qiankun 基于 import-html-entry 解析 HTML,而无界则是借鉴 import-html-entry 代码,实现了自己的 HTML 的解析,因此两者在解析 HTML 不同,主要是在...无界是如何获取 HTML 的外部的 script、style 内容的?...分析 HTML,可以拿到外部 script、style 的 url,用 fetch 发起 ajax 就可以获取到 script、style 的内容。...但是 fetch 相对于原来 HTML script 标签,有一个坏处,就是 ajax 不能跨,因此在使用无界的时候必须要给请求的资源设置允许跨 处理 CSS 并重新嵌入 HTML 单独将 CSS...即使是经历过长时间迭代的 qiankun,其设计也有问题,因此还配有一个常见问题的页面,给开发者提供帮助去避免问题。

    1.3K30

    Vue隐藏技能:运行时渲染用户写入的组件代码!

    component 本质只不过是一个 js object 而已。...iframe 会创建独立于主站的一个,这种隔离可以很好地防止 js 污染和 css 污染,隔离方式又分为跨隔离和非跨隔离两种,跨则意味着完全隔离,非跨则是半隔离,其主要区别在于安全策略的限制,...先介绍半隔离方式,即通过非跨 iframe 渲染,首先需要渲染一个 iframe,我们使用不设置 src 的方式,这样更具备通用性,可以用于任意的站点。...}, } }, }, 除了错误处理,还需解决一下 iframe 的一些特性,比如边框,滚动条,默认宽高,其中比较棘手是 iframe 高度有默认值,并不会随着 iframe内容自适应高度...在处理主将组件内容通过postMessage传给 iframe 时,碰到了一个棘手的问题,postMessage 对可传递的数据有限制,具体的限制可查看 The structured clone algorithm

    3.6K10

    如何开发跨框架的组件

    业务定制性可根据接口配置,返回不同iframe 地址,加载不同的业务逻辑组件,一次开发任意使用。 如何实现 下面是整个组件的逻辑图: ?...图片 使用方通过容器组件初始化参数、并注册相应的回调: 容器组件 初始化: 设置 document.domain,让外部组件和 iframe 可以通信 // 获取主域名 function getTopLevelDomain...图片 主域名修改 document.domain + iframe : 设置 document.domain 为主域名,业务方与 iframe 主域名相同,实现父子同通信。...这种实现的前提是两个的主域名必须一致 Nginx 代理 Nginx 配置:iframe 页面的路径配置为通用路径,反向代理依赖接口,实现全域名可访问。...更好的方式则是推动技术栈的统一,从根源避免出现此种情况。

    92220

    如何开发跨框架的组件

    业务定制性可根据接口配置,返回不同iframe 地址,加载不同的业务逻辑组件,一次开发任意使用。 如何实现 下面是整个组件的逻辑图: ?...图片 使用方通过容器组件初始化参数、并注册相应的回调: 容器组件 初始化: 设置 document.domain,让外部组件和 iframe 可以通信 // 获取主域名 function getTopLevelDomain...图片 主域名修改 document.domain + iframe : 设置 document.domain 为主域名,业务方与 iframe 主域名相同,实现父子同通信。...这种实现的前提是两个的主域名必须一致 Nginx 代理 Nginx 配置:iframe 页面的路径配置为通用路径,反向代理依赖接口,实现全域名可访问。...更好的方式则是推动技术栈的统一,从根源避免出现此种情况。

    73620

    无界微前端是如何渲染子应用的?

    qiankun 基于 import-html-entry 解析 HTML,而无界则是借鉴 import-html-entry 代码,实现了自己的 HTML 的解析,因此两者在解析 HTML 不同,...无界是如何获取 HTML 的外部的 script、style 内容的?...分析 HTML,可以拿到外部 script、style 的 url,用 fetch 发起 ajax 就可以获取到 script、style 的内容。...但是 fetch 相对于原来 HTML script 标签,有一个坏处,就是 ajax 不能跨,因此在使用无界的时候必须要给请求的资源设置允许跨处理 CSS 并重新嵌入 HTML单独将 CSS 分离出来...即使是经历过长时间迭代的 qiankun,其设计也有问题,因此还配有一个常见问题的页面,给开发者提供帮助去避免问题。

    5.3K30

    初探富文本之React实时预览

    那么接下来我们进入正题,如何动态渲染React组件来完成实时预览,我们首先来探究一下实现方向,实际我们可以简单思考一下,实现一个动态渲染的组件实际不就是从字符串到可执行代码嘛,那么如果在Js中我们能直接执行代码中能直接执行代码的方法有两个...编译器 前边我们也提到了,浏览器是不能直接执行React代码的,这其中一个问题就是浏览器并不知道这个组件是什么,例如我们从组件库引入了一个组件,那么将这个组件交给浏览器的时候其并不知道...通过Function构造函数可以动态创建函数对象,类似于eval可以动态执行代码,然而与具有访问本地作用的eval不同,Function构造函数创建的函数仅在全局作用域中执行,其语法为new Function...window: {}放在sandbox变量中,因为在沿着作用向上查找的时候检索到window了就不会继续向上查找了,但是一个很明显的问题是我们不可能将所有的全局对象枚举出来放在参数中,此时我们就需要使用...在上文中我们一直是使用限制用户访问全局变量或者是隔离当前环境的方式来实现沙箱,但是实际我们还可以换个思路,我们可以将用户的代码放置于一个iframe中来执行,这样我们就可以将用户的代码隔离在一个独立的环境中

    48020

    《前端实战总结》之使用postMessage实现可插拔的跨聊天机器人

    通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议,端口号以及主机 (两个页面的模数 Document.domain设置为相同的值) 时,这两个脚本才能相互通信。...这个字符串由 协议、“://“、域名、“ : 端口号”拼接而成 source 对发送消息的窗口对象的引用; 您可以使用此来在具有不同origin的两个窗口之间建立双向通信 3....首先我们写两个html,分别为a.html和b.html,然后用node分别代理两个不同页面,设置不同端口: // a.js //依赖一个http模块,相当于java中的import,与C#中的using...placeholder="请输入内容" id="ipt"> 发送 <script...5.实现可插拔式 可插拔式就是一个页面可以放在不同平台使用。

    1.1K20

    前端网络高级篇(六)网站性能优化

    使用CDN 内容发布网络(CDN)是一组分布在多个不同地理位置的WEB服务器,用于更加有效地向用户发布内容。 CDN用于发布静态内容,如图片,脚本,样式表和Flash。...并且,浏览器在同一个时刻向同一个域名请求文件的并行下载数量是有限的(Chrome为6个并发),所以,可以利用多个域名主机存放不同的静态资源,增大页面加载时资源并行下载数量。 3....将样式表放在顶部 外部脚本文件和CSS文件是并行下载的,把样式表在页面中的位置并不影响下载时间,但会影响页面的呈现!浏览器必须要等样式表加载完毕之后才渲染页面。...影响页面资源并行加载:iframe和主页面共享连接池,而浏览器对相同的连接有限制,所以会影响页面资源的并行加载。...为了解决两个问题,可以动态设置iframe中的src属性,代码如下: document.getElementById

    1.9K30

    RenderingNG中关键数据结构及其角色

    帧树Frame Tree Chrome 有时候会选择一个与「父框架」不同的渲染进程来处理跨框架cross-origin frame。 在上面的提供文档结构中,一共出现了「3个框架结构」。...Viz合成器使用这个「同步令牌」来等待「所有」本地frame树片段提交一个具有当前同步令牌的合成器帧。这个过程避免了混合具有不同视觉属性的合成器frame。 ---- 2....内联Lnline片段信息 「内联内容」使用一个稍微不同的表示方法。我们使用一个扁平化flat的「列表」来表示内联内容。...> 这个HTML和CSS将产生以下「显示列表」,其中每项是一个显示项目。...❝合成器帧是RenderingNG表示如何将栅格化的内容「拼接」在一起,并使用GPU有效地绘制它的数据格式 ❞ 瓦片Tile 理论,渲染进程或浏览器进程中的合成器compositor可以「将像素栅格化为渲染器视口的单一纹理

    2K10

    实用的VUE系列——每天在用的Vue-SFC-Playground你真的了解吗?

    他舍弃了直接兼容模块化新特性,我相信他们内部其实做了一个痛苦的抉择; 有可能还在为实现方式大大出手!! 因为制定标准总是很容易的(嘴皮下嘴皮一碰的事),做事总是很不容易的。...其实我就是就是一个不受外部影响的干净的执行环境 沙箱这个名字,虽然听起来比较玄乎 但其实,在我们的日常开发中,无不在使用沙箱 比如: IIFE JavaScript 中目前有三种作用: 全局作用、函数作用...url 不同步。浏览器刷新 iframe url 状态丢失、后退前进按钮无法使用。 UI 不同步,DOM 结构不共享 全局上下文完全隔离,内存变量不共享。...所谓同源策略 就是两个 URL 具有相同的协议,,和端口 在同源的情况下,我们能轻而易举的获取如下信息: iframe.contentWindow 来获取 中的 window iframe.contentDocument...// 3. sandbox="allow-top-navigation" //   允许 iframe 内容从包含文档导航(加载)内容

    1.1K10

    开发一个在线 Web 代码编辑器,如何?今天来教你!

    最近看了掘金刚上线的在线代码编辑器 “码掘金”,突然想是不是自己也可以写一个在线代码编辑器。...options 这是一个具有我们希望编辑器具有不同功能的对象。CodeMirror 中有许多令人惊叹的选项。... ); 在这里,我们创建了 iframe 并将其存放在 div 容器标签中。...使用 iframe 时,我们可以在页面上嵌入外部网页或呈现指定的 HTML 内容。要加载和嵌入外部页面,我们将使用 src 属性。...对于 iframe,另一个考虑因素是页面加载时间,因为 iframe 中加载的内容通常不受你的控制。在我们的应用程序中,这不是问题,因为我们的 iframe 内容不是外部的。

    12.1K30

    【实战】快来和我一起开发一个在线 Web 代码编辑器

    这些编辑器给开发者提供了这样的使用场景:当没有机会使用代码编辑器应用程序时,或者当你想使用计算机甚至手机快速尝试 Web 的某些内容时,在线 Web 代码编辑器就会进行我们的视野。...options 这是一个具有我们希望编辑器具有不同功能的对象。 CodeMirror 中有许多令人惊叹的选项。... ); 在这里,我们创建了 iframe 并将其存放在 div 容器标签中。...使用 iframe 时,我们可以在页面上嵌入外部网页或呈现指定的 HTML 内容。 要加载和嵌入外部页面,我们将使用 src 属性。...对于 iframe,另一个考虑因素是页面加载时间,因为 iframe 中加载的内容通常不受你的控制。 在我们的应用程序中,这不是问题,因为我们的 iframe 内容不是外部的。

    75620
    领券