一点点小技巧,就当是个笔记了。
页面中经常会出现iframe(虽然这玩意经常被人当成病毒,但iframe的方便之处毋庸置疑),JS如何读取iframe的元素的值呢?
其实也很方便:
document.getElementById('iframe01').contentDocument.body.innerHTML
document.frames['iframe01'].document.body.innerHTML
document.getElementById('iframe01').contentWindow.document.body.innerHTML
基本上这三个方法都可以。如果一个不行就尝试着用下一吧。个人还是主张直接使用第三个
说实话,在看到这个Comet被人提起来的时候,我真的不知道是什么意思。翻开金山词霸,结果求伯君同学告诉我,这是彗星的意思。
彗星?怎么着也不能理解。。。于是乎G了一下,发现原来Comet并不是一个新技术,而是和AJAX一样也是一个炒冷饭的东东。
目前用的最多的使用Comet的大概是两种方法,一种是iframe,一种就是ajax。
用ajax的就没有什么好讲了,无非就是setIntval();定一个时间循环往复,往复循环的用ajax读回数据。
用iframe呢。则是利用现在的一些JS类库(当然不用也可以)生成一个Iframe 的Element,在这个页面里打开一个PHP或者其他的动态网页,再由那个网页不停的生成生成再生成,然后通过iFrame的window.parent.xxx.innerHtml = 'this...value...';通过这种方法将iframe里得到的内容生成到主页面上。
细看看这两种,哪种不是炒冷饭?只是冠以一个好听的名字而己,自从2001年,网络聊天室开始有无刷新聊天时,iframe取得数据返回主页面这种方法就早己经存在。AJAX虽然是最近几年的新酒,但何尝不是原来的那些方法的集合?只是以前可能用的是setIntval定时用window.location.reload();来进行页面刷新,现在是用AJAX取回数据再通过innerHtml来更新DIV区域而己。
自此,对Comet有点失望。毕竟对这些都只是一些简单的封装,没有什么新的东西。