如何用JS获取iframe里面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JS获取iframe里面的内容相关的知识,希望对你有一定的参考价值。

<html><head><title>baidu</title></head>
<body>
<iframe border=0 name=lantk src="http://www.baidu.com" width=300 height=500 allowTransparency scrollbars=yes frameBorder="0">
</iframe>
</body></html>
如上例,能不能取得iframe里面的文本框中的内容
能用php实现更好

1、获取iframe
eg. var ifr_window = window.frames["frameName"];
2、获取iframe中的元素
eg1. 将iframe中id为elementId 的元素置为不显示:
var ifr_window = window.frames["frameName"];
ifr_window.elementId.style.display = \'none\';
eg2. 获取iframe中id为listTable的表格
var oTable = window.frames["myFrame"].document.all.listTable;
3、隐藏或显示表格的某列
js函数:
function setHiddenOrShowCol(oTable, iCol, type)
for (i = 0; i < oTable.rows.length ; i++)
oTable.rows[i].cells[iCol].style.display = type;


调用举例,将id为listTable的表格元素的第4列置为不显示:
var oTable = window.frames["myFrame"].document.all.listTable;
setHiddenOrShowCol(oTable, 3, \'none\');
调用举例2,将id为listTable的表格元素的第4列置为显示:
var oTable = document.frames.myFrame.document.all.listTable;
setHiddenOrShowCol(oTable, 3, \'block\');
参考技术A js 跨域名是取不到iframe里的信息的, 除非同一个域名下.
如果是同一个域名下的.
var win = document.getElementById('frmid').contentWindow;
var frmobj = win.document.getElementById('控件');追问

js 跨域名是取不到iframe里的信息???

我现在的情况就是要从本地得到网上的一个页面的数据,除了JS还有其他办法吗?

追答

可以通过服务器端程序获取其它网站的内容, 然后正则匹配出你所需要的东西.
PHP code:
$file = file_get_contents('http://www.newkan.com/');
var_dump($file);

参考技术B 这个这样可以实现.
在button中添加处理方法就可以了
<input type="button" onclick=p()>
一个可能的写法可以是:
function p()
var o=window.open("1.html");
o.frames["iframe1"].location="2.html";


参考技术C js:
//这是子页面的Window
var win = document.getElementById('iframeID').contentWindow;
win.document.getElementById('你要找的html控件');
参考技术D var win = document.getElementById('frmid').contentWindow;
var frmobj = win.document.getElementById('控件');

如何用js控制iframe里body的背景属性

我网站页面里有一个广告联盟投放的文字广告, 我们留给它的div大小是400*40大小, 但是它里面只使用了300*12的空间, 剩余部分被iframe里的body属性:背景色:白色给控制住了 ,当我动态改变页面的背景颜色非白色的其它颜色时, 文字广告位就显示为白底上面的一行字, 问是否有方法可控制iframe里面的body背景为透明色 , 谢谢!

参考技术A iframe 外面放一个div层,在js中动态改变div的style 属性:
window.parent.$("#id").attr("style","filter:alpha(opacity=10);");
参考技术B 如果是广告联盟的,JS是不能够跨域访问对象的

以上是关于如何用JS获取iframe里面的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何用js 在div内插入内容

如何用js控制iframe里body的背景属性

如何用javascript 跨域获取iframe子页面的元素信息

javascript 如何获取iframe里面的内容?

如何获取iframe里面iframe的高度

js 怎么获取iframe 的高度?