解决方案

iframe的基本介绍与使用

seo靠我 2023-09-24 01:50:45

一、介绍

iframe(内嵌框架)是 HTML 中一种用于将一个网页嵌入到另一个网页中的标签,它可以在一个页面中显示来自其他页面的内容。在网页中,使用<iframe>标签可以将一个网页嵌套在另一个网页中SEO靠我,实现网页间的互联互通。

二、使用

<iframe>标签的基本用法如下:

<iframe src="URL"></iframe>

三、属性 

属性描述allow允许特定功能的列表,如fullscreen,geolSEO靠我ocation等allowfullscreen指定是否允许在iframe中使用全屏模式allowpaymentrequest指定是否允许在iframe中进行支付请求allowtransparency指SEO靠我定iframe是否可以是透明的class为iframe定义一个或多个类名frameborder指定是否在iframe周围显示边框height指定iframe的高度importance指定iframe对SEO靠我页面内容的重要性loading指定iframe加载时的行为name为iframe定义一个名称referrerpolicy指定如何发送referer HTTP标头sandbox启用iframe的沙盒模式SEO靠我,提高安全性src指定要在iframe中显示的文档的URLsrcdoc在iframe中嵌入HTML代码而不是外部文档style定义iframe的CSS样式title为iframe定义一个标题widthSEO靠我指定iframe的宽度

四、注意

虽然 <iframe> 标签可以很方便地实现上述功能,但是需要注意以下几点:

嵌入的网页必须与主页面同源,否则会受到浏览器的安全限制。嵌入的网页可能会影响页面性能和加载速度,特SEO靠我别是当嵌入的网页包含大量的资源(如图片、CSS 和 JavaScript)时。嵌入的网页可能会被恶意攻击者用于钓鱼或注入恶意代码的攻击,因此需要谨慎使用。

总之,在使用 <iframe> 标签时,需要仔SEO靠我细权衡其优缺点,确保安全和性能。

五、传值

5.1 URL传参

可以在iframe的src属性中使用查询参数(也称为URL参数)将数据传递到嵌入的页面。例如,假设iframe嵌入的页面URL是 index.SEO靠我com/page.html,那么可以使用如下的URL来传递数据:

<iframe src="index.com/page.html?param1=value1&param2=value2"></ifraSEO靠我me>

  在嵌入的页面中,可以使用JavaScript获取查询参数并使用它们: 

var params = new URLSearchParams(window.location.search); SEO靠我 var param1 = params.get(param1); var param2 = params.get(param2);

或者写一个函数获取对应的值(该方法来自拓维的一位SEO靠我前端工程师大佬):

//从url获取参数 export const getQuery = (name: string, url?: string) => {const params = SEO靠我new URLSearchParams(url || window.location.search);const value = params.get(name);if (value) {returnSEO靠我 value;}return getQueryString(name, url); };export const getQueryString = (name: string, urlSEO靠我?: string) => {const reg = new RegExp((^|&|/?) + name + =([^&]*)(&|$), i);const r = encodeURI(url ||SEO靠我 window.location.search || window.location.href || window.location.hash).substr(1).match(reg);if (r SEO靠我!= null) return unescape(r[2]);return null; };

5.2 postMessage()传参

postMessage()方法是一种用于在不同窗口或文SEO靠我档之间传递消息的通用方法,它可以实现跨域通信。在使用postMessage()方法时,需要在发送消息的窗口(发送方)和接收消息的窗口(接收方)中分别编写代码。

5.2.1 子传父:

子:

// 发送消息给接SEO靠我收方窗口 window.parent.postMessage("Hello, parent!", "http://parent.com");

父:

// 监听message事件,接收消息 SEO靠我 window.addEventListener("message", receiveMessage, false);function receiveMessage(event) {//SEO靠我 判断消息来源是否是指定的发送方窗口if (event.origin === "http://child.com") {// 处理接收到的消息console.log(event.data);} SEO靠我 }

5.2.2 父传子:

父:

创建实例对象:

const iframe = document.getElementById(my-iframe); const iframeWindSEO靠我ow = iframe.contentWindow;

发送消息:

const message = { type: GREETINGS, data: Hello, child! }; conSEO靠我st targetOrigin = http://child.com; // 指定接收方的源 iframeWindow.postMessage(message, targetOrigiSEO靠我n);

子:

接收消息

window.addEventListener(message, receiveMessage, false);function receiveMessage(event) {if SEO靠我(event.origin === http://parent.com) { // 验证消息来源console.log(event.data); // 处理接收到的消息} }

注意:可以SEO靠我targetOrigin 设置为“ * ” 号以匹配所有路径,但可能会有安全风险。谨慎使用。

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2