JavaScript 怎么跨域获取 iframe 中的内容

JavaScript017

JavaScript 怎么跨域获取 iframe 中的内容,第1张

如果 iframe地址与当前页面地址同域,js可以访问该页面内的对象.

使用 window.frames[0] 或者window.frames[name] 来访问frame的window对象

如要获取元素,使用 window.frames[0].document.getElementById

另外 ,ie系列和webkit系列可能访问方法上略有区别,具体可调试查看

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 = 0i <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')

在当前页面写js:

<script>

function GridSearch() {

var ifr = document.getElementById('Soft_Iframe')//Soft_Iframe是iframe的id

var win = ifr.window || ifr.contentWindow

win.FilterSearch()//是iframe里面的js方法,相当于执行子页面的内容。

}

</script>

然后在iframe里面显示的那个页面上写js方法:

<script>

function FilterSearch(){

//这里面写你要获得当前页面元素的信息。

}

</script>