我想在渲染 index.html 之后立即从 index.html 调用在 iframe(iframe.html) 中定义的方法“getData()”。下面是我的片段。在这种情况下,Chrome 会检测到错误“Uncaught TypeError: Object [object global] has no method 'getData'”。Chrome 目前似乎在 iframe 中看不到“getData()”方法。另一方面,在 Chrome 控制台上,我可以调用 getData() 并获取返回的数据。
有没有一种好方法可以在渲染后立即调用并获取数据?任何提示、帮助或解决方案将不胜感激!
- index.html 如下。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>index.html</title>
<script src='//code.jquery.com/jquery-2.0.2.min.js'></script>
</head>
<body>
<p>The following content is generated by iframe.</p>
<iframe src="iframe.html" id="myIframe"></iframe>
<script>
function getData() {
return document.getElementById('myIframe').contentWindow.getData();
};
$(function() {
return document.getElementById('myIframe').contentWindow.getData();
});
</script>
</body>
</html>
- iframe.html 如下。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<script src='//code.jquery.com/jquery-2.0.2.min.js'></script>
</head>
<body bgcolor="#FFFF00">
<p>I am in iframe.</p>
<script>
var data = {"result": true ,"data": [{"1": true}, {"2": false}]};
function getData(){
return data;
}
</script>
</body>
</html>
- Chrome 中的控制台错误消息
Uncaught TypeError: Object [object global] has no method 'getData'