我有一个inside.html
:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<button id="mybutton">Click</button>
</body>
<script>
$(document).ready(function() {
parent.changeName("init");
});
$("#mybutton").click(function(e) {
parent.changeName("changed");
})
</script>
</html>
它由来自iframe
的{{1}}加载:
outside.html
现在,当我加载页面或点击<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
</head>
<body>
<iframe src="inside.html" style="overflow: scroll; position: absolute; width: 100%; height: 100%; border: none;">
</iframe>
</body>
<script>
var name = "";
function changeName(arg) {
name = arg;
alert(arg);
}
</script>
</html>
按钮时,系统会调用inside.html
中的changeName
功能,因为会显示警告框。但是,变量outside.html
未更改(我从控制台中获取)。我不知道为什么。
两个文件都在同一个域中,因此没有跨域问题。
如果您不介意,可以查看实时页面:
谢谢!