参见代码注释:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="jquery-1.8.3.min.js"></script>
<script>
$(function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'inject.js';
//用如下的方法注入会发现inject.js打印出来的是父页面的body内容,而不是iframe的body
$('#target').contents().find('head').append(script);
//正确方法:获取到的head对象后,将其转换为js对象,然后直接使用原生方法:appendChild
$('#target').contents().find('head')[0].appendChild(script);
});
//inject.js
//将注入到iframe,执行后打印body内容
$(function(){
console.log($('body').html());
});
</script>
</head>
<body>
<iframe id="target" src="http://www.xxx.com"></iframe>
</body>
</html>