阅读:10681回复:11
iframe 问题
再请问一下,
若要得到iframe裡的资料(same domain), ex:iframe裡某个link… content.document.getElementById(iframeId).contentWindow.document.getElementsByTagName("a")[o].innerHTML; 这样写对吗? |
|
1楼#
发布于:2008-04-25 17:31
不清楚你的写法对不对, 我好像没见过 firefox里有用contentWindow的。 我的方法一般是先获得
iframe元素,然后用获得的元素调出document,最后用文档找链接。 简写是这样的: i = document.getElementById("iframeName"); iDoc = i.contentDocument; iDoc.getElementById("linkName"); |
|
2楼#
发布于:2008-04-25 17:31
因为我这是写在extension裡的…
不知这样用对不对… |
|
3楼#
发布于:2008-04-25 17:31
|
|
4楼#
发布于:2008-04-25 17:31
|
|
|
5楼#
发布于:2008-04-25 17:31
|
|
6楼#
发布于:2008-04-25 17:31
var iframe = content.document.getElementById(iframeId);
var iDoc = iframe.contentDocument; try{ alert(iDoc.getElementsByTagName("a")[o].innerHTML); } catch(err){ alert(err.description); } 显示undefined,是指定iframe的位置有错吗? 对iframe的资料抓取实在不懂…麻烦赐教一下,感谢! |
|
7楼#
发布于:2008-04-25 17:31
1. 是哪个位置的元素undefined?
2. 这样没头没尾的,也没有办法做测试,你能给个地址过来吗? 3. 用extension抓页面,要确定所需页面的加载动作完成以后,再执行你的代码,否则有可能就是undefined。 4. 如果只是想抓取网页内容,建议用greasemonkey试试。 或者是先用greasemonkey确认能抓取到了,再移植到extension上, 好处就是直接修改profile/gm_scripts下相应的脚本,刷新页面就可以了,不需要重开窗口。 |
|
8楼#
发布于:2008-04-25 17:31
感谢赐教…
结果是第3个问题…感谢感谢 请问要怎么判断iframe已经完全load了呢? |
|
9楼#
发布于:2008-04-25 17:31
vworld:感谢赐教…那就要用addEventListener 了,监听load之类的动作。 不过好像很多情况都会触发load监听,比如image加载。extension开发,我所知不多, 也许不对。 看看下面的东西对你有没有帮助: http://developer.mozilla.org/en/docs/Co ... _page_load http://developer.mozilla.org/en/docs/Co ... _page_load |
|
10楼#
发布于:2008-04-25 17:31
感谢帮忙…
可是还是有问题…可以麻烦帮我转到"Mozilla 软件开发及相关技术"的页面去吗? 谢谢! |
|
11楼#
发布于:2008-04-25 17:31
这个。。。 俺没有这个权限
|
|