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日

相关文章

  • JS实现提示效果弹出及延迟隐藏的功能

    JS实现提示效果的弹出及延迟隐藏功能,可以通过以下步骤来完成: 步骤一:创建提示框HTML结构 首先,我们需要创建一个提示框的HTML结构,可以使用div标签模拟弹出框,也可以使用ul或者table标签,此处以使用div标签为例。 <div id="tip-box" style="display:none;"&g…

    JavaScript 2023年6月11日
    00
  • HTTP报文及ajax基础知识

    HTTP报文及AJAX基础知识 HTTP报文 HTTP报文的格式如下: <HTTP请求报文> <请求头> <请求体> <HTTP响应报文> <响应头> <响应体> 其中,请求头和响应头以键值对形式出现,每个键值对占一行,键和值之间使用一个冒号加一个空格隔开;请求体和响应体可以为空,也可以…

    JavaScript 2023年6月11日
    00
  • JS比较两个时间大小的简单示例代码

    JS比较两个时间大小可以通过将时间字符串转换为时间戳,然后将时间戳进行比较来实现。下面是实现的具体步骤: 第一步:将时间字符串转换为时间戳 使用JavaScript内置的Date对象可以将时间字符串转换为时间戳,方法是调用getTime()函数,它将返回当前日期对象表示的时间与UTC时间1970年1月1日午夜之间相差的毫秒数。 示例代码: let dateS…

    JavaScript 2023年5月27日
    00
  • JS实现的对象去重功能示例

    下面我将详细讲解JS实现的对象去重功能示例的完整攻略。首先,我们需要了解什么是对象去重功能。 什么是对象去重功能? 在JS中,我们经常会遇到需要对一个对象数组进行去重的需求。对象去重功能是指将一个包含多个对象的数组转换为另一个不包含重复对象的数组,去除掉数组中重复的对象。 如何实现对象去重功能? 一般情况下,我们可以通过遍历数组,对每个对象的某个属性进行比较…

    JavaScript 2023年5月27日
    00
  • 日期 时间js控件

    下面我来详细讲解“日期时间JS控件”的完整攻略。 什么是日期时间JS控件 日期时间JS控件,也称为日期选择器、时间选择器,是一种用于在网页中选择日期和时间的工具。它通常是由JS代码和CSS样式组成,可以根据需求定制外观和交互方式。 常见的日期时间控件有DatePicker、DateTimePicker、TimePicker等。 如何使用日期时间JS控件 使用…

    JavaScript 2023年5月27日
    00
  • JavaScript模板字符串用法实例

    JavaScript模板字符串用法实例 JavaScript模板字符串是一种能够很好地简化字符串拼接的技术,它支持在字符串中嵌入表达式和变量,并可以轻松地将多行代码合并为单个字符串。本文将介绍JavaScript模板字符串的用法,并提供一些示例说明。 创建模板字符串 在JavaScript中,创建模板字符串的方法是使用反引号 (\)将字符串括起来。下面是一个…

    JavaScript 2023年5月28日
    00
  • jQuery EasyUI提交表单验证

    jQuery EasyUI 是一款非常流行的 jQuery 插件集合,其中包含了许多实用的 UI 组件,方便我们在 Web 开发中使用。其提交表单验证功能也非常实用,在本篇文章中,我们将详细讲解 jQuery EasyUI 提交表单验证的完整攻略,包括如何配置和使用验证器,以及如何处理验证结果。 准备工作 首先,我们需要引入 jQuery EasyUI 插件…

    JavaScript 2023年6月10日
    00
  • 深入理解javascript中concat方法

    下面是详细讲解“深入理解JavaScript中concat方法”攻略: concat()方法简介 concat()方法是JavaScript中的一个数组方法,用于将两个或多个数组连接在一起,生成一个新的数组。 concat()语法如下: array.concat(array1, array2, …, arrayN) 其中,array是指原数组,array…

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