Javscript调用iframe框架页面中函数的方法

当一个网页中包含有一个或多个iframe时,如果我们想要在外部JS文件中调用这个iframe中的函数,我们可以通过以下两种方法来实现。

方法一:使用window.frames[index].functionName()

使用window.frames可以获取网页中所有的iframe,它返回的是一个加了编号的数组,每个数组元素代表一个iframe,编号从0开始。在获取到iframe之后,我们可以通过在它后面加上其内部元素的id或名称来获取到对应的元素,再使用.调用函数。

//获取第一个iframe中的元素,并调用该元素中的函数
window.frames[0].document.getElementById("elementId").functionName();

方法二:在iframe框架内定义window.parent

在iframe框架内,我们可以使用父页面的window.parent方法获取到父页面中的全局对象,从而就可以在父页面中调用到iframe中定义的函数。

示例一:调用从属于父页面window对象中的函数

<!-- 父页面 index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>主页</title>
</head>
<body>
    <iframe src="./iframe.html" id="iframe1" width="100%" height="480" frameborder="0">
    </iframe>    
    <script type="text/javascript">
        function sayHello() {
            alert('hello');
        }
    </script>
</body>
</html>
<!-- 子页面 iframe.html -->
<!DOCTYPE html>
<html>
<head>
    <title>iframe 页面</title>
</head>
<body>
    <button onclick="doParent()">点击弹窗</button>
    <script type="text/javascript">
        //从属于父页面window对象中的函数
        function doParent() {
            window.parent.sayHello();   
        }
    </script>
</body>
</html>

在这里,我们在子页面iframe.html里定义了一个函数doParent(),当我们在iframe中点击按钮时,它会执行函数并通过window.parent方法获取到父页面的全局对象window。然后,我们可以调用父页面中定义的函数,最终成功弹出窗口。

示例二:调用从属于iframe框架页面中的函数

<!-- 父页面 index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>主页</title>
</head>
<body>
    <iframe src="./iframe.html" id="iframe1" width="100%" height="480" frameborder="0">
    </iframe>    
</body>
</html>
<!-- 子页面 iframe.html -->
<!DOCTYPE html>
<html>
<head>
    <title>iframe 页面</title>
</head>
<body>
    <button onclick="sayHello()">点击弹窗</button>
    <script type="text/javascript">
        //从属于 iframe 页面中的函数
        function sayHello() {
            alert('hello');
        }
    </script>
</body>
</html>

在这里,我们相当于直接在iframe.html中,定义了一个函数而没有定义在父页面上,也就是说我们可以直接调用当前iframe网页中的函数。

最后,需要注意一下,使用iframe调用函数和调用普通的函数是有一些差别的,主页面中的JS代码操作在父页面执行,而iframe中自己的JS代码操作需要在子页面中执行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javscript调用iframe框架页面中函数的方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 一个类似vbscript的round函数的javascript函数

    首先,我们需要明确需求:编写一个类似于VBScript中Rount函数的JavaScript函数。Round函数的作用是将一个数值四舍五入到指定的位数。 以下是JavaScript版本的Round函数的完整示例实现: // 自定义Round函数,用于四舍五入保留指定位数的数字 function round(number, precision) { var f…

    JavaScript 2023年6月10日
    00
  • JavaScript中的History历史对象

    当我们在浏览器中访问一个网页时,浏览器会自动记录下访问过的历史记录,这些历史记录在浏览器中可以用JavaScript的History对象进行访问和操作。下面是JavaScript中的History对象的详细讲解及相关示例说明。 History对象 History对象用来操作浏览器的历史记录,它保存着用户在当前窗口打开的所有页面的URL信息,可以通过Histo…

    JavaScript 2023年5月27日
    00
  • JS前端广告拦截实现原理解析

    让我详细解释一下“JS前端广告拦截实现原理解析”的完整攻略。 什么是JS前端广告拦截? JS前端广告拦截是一种方法,可以通过JavaScript代码模拟用户操作,从而屏蔽网站中的广告内容。 通过JS前端广告拦截,我们可以将网站中的广告屏蔽掉,提高用户体验,加快页面加载速度。 实现原理解析 下面是JS前端广告拦截的实现原理: 使用DOM查找要屏蔽广告的元素 通…

    JavaScript 2023年6月11日
    00
  • JS常用的几种数组遍历方式以及性能分析对比实例详解

    JS常用的几种数组遍历方式以及性能分析对比实例详解 在 JavaScript 中,数组遍历是开发者们经常需要用到的功能之一。在本文中,我们将介绍 JS 常用的几种数组遍历方式并进行一些性能分析对比。 常用的几种数组遍历方式 在 JavaScript 中,常用的几种数组遍历方式如下: 1. for 循环 for 循环是最基础的数组遍历方式,通过对数组的下标进行…

    JavaScript 2023年5月27日
    00
  • 为什么JS中eval处理JSON数据要加括号

    引言 在处理JSON数据时,除了常见的JSON.parse()方法,一些开发者会使用eval()方法来处理JSON数据。但是,在使用eval()方法处理JSON数据时会遇到一个问题:数据中的第一个字符是左大括号({),JS会将其判定为代码块,从而抛出错误。为了解决这个问题,需要在JSON数据外面加上括号。本文将详细讲解为什么JS中eval处理JSON数据要加…

    JavaScript 2023年5月27日
    00
  • js中获取时间new Date()的全面介绍

    下面给出对”js中获取时间new Date()的全面介绍”的详细讲解。 1. 什么是Date对象? 在JavaScript中,Date对象用于处理日期和时间,它可以获取当前的日期时间,也可以设置指定的日期时间。 使用new Date()命令可以创建一个Date对象。如下面的示例代码: let date = new Date(); console.log(da…

    JavaScript 2023年5月27日
    00
  • JavaScript中好用的解构用法详解

    JavaScript中好用的解构用法详解 什么是解构 在JavaScript中,解构是一种使得能够从数组或者对象中快速提取值、封装成一个变量或变量组的语法。 数组解构 数组的解构就是对数组的值进行“一一对应的提取”操作 基本用法 基本语法如下: let [a, b, c] = [1, 2, 3]; console.log(a); //1 console.lo…

    JavaScript 2023年5月18日
    00
  • JavaScript箭头函数与普通函数的区别示例详解

    JavaScript中有两种定义函数的方式:普通函数和箭头函数。它们在语法和用法上有一些差异。在本文中,我们将通过两个示例来详细介绍箭头函数和普通函数之间的区别。 示例1:this 关键字 一个函数的 this 值取决于调用方式。 在普通函数中,this 关键字根据函数被调用的方式动态绑定。而在箭头函数中,它会捕获它所在上下文的 this 值,而不是动态绑定…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部