jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。jQuery 的核心特性之一是能够轻松地执行父页面中的函数。
在 jQuery 中,执行父页面函数主要有以下几种方式:
window.parent
为 null
或 undefined
原因:当当前页面不是通过 iframe 加载的,或者当前页面和父页面不在同一个域时,window.parent
可能为 null
或 undefined
。
解决方法:
if (window.parent && window.parent !== window) {
window.parent.parentFunction();
} else {
console.error('无法调用父页面函数');
}
原因:浏览器的同源策略限制了不同源的页面之间的通信。
解决方法:
假设父页面有一个函数 parentFunction
,子页面通过 jQuery 调用这个函数:
父页面 (parent.html):
<!DOCTYPE html>
<html>
<head>
<title>Parent Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<iframe id="childFrame" src="child.html"></iframe>
<script>
function parentFunction() {
alert('父页面函数被调用');
}
</script>
</body>
</html>
子页面 (child.html):
<!DOCTYPE html>
<html>
<head>
<title>Child Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<button id="callParent">调用父页面函数</button>
<script>
$(document).ready(function() {
$('#callParent').click(function() {
if (window.parent && window.parent !== window) {
window.parent.parentFunction();
} else {
console.error('无法调用父页面函数');
}
});
});
</script>
</body>
</html>
通过上述示例代码,子页面可以通过点击按钮调用父页面的 parentFunction
函数。