window.frames[0].src为什么不行

最近做项目时遇到一个问题,就是js在框架结构的网页文件与普通的网页文本文件执行顺序的区别

demo1:normal
<html>
<head>
<script>.......</script>
</head>
<body>........</body>
</html>

demo2: frameset

<html>
<head>
<script>.......</script>
</head>
<frameset>
    <frame>........</frame>
    <frame>........</frame>
</frameset>
</html>

普通文件(demo1):按代码的先后顺序执行,所以是先加载js,后加载dom文件;所以要在js获得dom中的节点元素必须是在dom加载完毕才可以,否则为null;

框架结构(demo2):先加载网页文件,再加载js;

window.frames[0].src为什么不行

最近很多朋友所问关于框架的问题都是因为不明白DOM框架原理而引起的,在这里就我所了解的,一并回答:

在DOM文档对象模型中,window对象处于最高层,而框架除了是当前窗体的一个节点外,本身也是一个独立window对象, 当frames作为window对象时,有name属性,而没有src属性,只有作为节点时才有src属性, 也就是说window.frames[0]这种写法代表一个window对象,所以window.frames[0].src 当然是undefined了 ,这也是很多人容易混淆的原因!

若要获得src属性,可以这样写:document.getElementById(frame_id).src  //节点对象

 

 

转载于:https://www.cnblogs.com/daxian2012/archive/2012/08/03/2621564.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值