在做网页的时候,父页面 parent.html 中用到了iframe嵌套一个子页面 sub.html
刚开始的时候这两个页面都同时导入了 jquery.min.js 的文件,这样两个页面都可以使用jquery的对象
但是当浏览 parent.html 的时候会加载同一个 jquery.min.js 两次,这样貌似累赘了。
所以我希望就是在 parent.html 中导入一次 jquery.min.js 的文件就可以在 parent.html 和 sub.html 中使用
下面就是一些实验的代码:
父页面:parent.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript" src="jquery.min.js"></script>
</head>
<body>
<iframe src="sub.html"></iframe>
</body>
</html>
子页面:sub.html
刚开始我是这样写的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sub.html</title>
<script>
var $ = parent.window.$;
$(document).ready(function(){
var body= $("body",document);
var p = body.find("p");
var text = p.text();
alert(text);
})
</script>
</head>
<body>
<p>测试</p>
</body>
</html>
?但是输出的是空值,而不是“测试”
?原因可能是解析 sub.html 的时候,是从上而下执行的吧,所以
var body= $("body",document);//得到的对象是一个空对象
?因此也就找不到 p 标签了
?后来我试着改变 javascript 代码的位置,把它移到 body 标签的下面,如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sub.html</title>
</head>
<body>
<p>测试</p>
</body>
<script>
var $ = parent.window.$;
$(document).ready(function(){
var body= $("body",document);
var p = body.find("p");
var text = p.text();
alert(text);
})
</script>
</html>
? 输出的结果是“测试”,正是我想要的结果。
? 接着我又试着
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sub.html</title>
</head>
<body>
<p>测试</p>
</body>
<script>
var $ = parent.window.$;
var body= $("body",document);
var p = body.find("p");
var text = p.text();
alert(text);
</script>
</html>
?同样输出“测试”,那么
$(document).ready()//这个方法是不起作用的了
?因此需要把 javascript 的代码写在body之后,等body的内容完全生成后再执行 jquery 的代码才能实现想要的结果。
?
?附加另外的一些测试:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sub.html</title>
</head>
<body>
<p>测试1</p>
<p>测试2</p>
<p>测试3</p>
<p>测试4</p>
<p>测试5</p>
</body>
<script>
var $ = parent.window.$;
var body= $("body",document);
var p = body.find("p");
p.each(function(){
alert($(this).text());
})
</script>
</html>
1 楼
车涛锋
2012-08-10
lz 这个例子合适吗 我怎么照着做了之后 还是不合适啊
2 楼
车涛锋
2012-08-10
对不起 是谷歌浏览器不弹出对话框 请问有解决方法吗