1、js如何操作iframe的跨域问题
A域名下的页copy面index.htm中内嵌了一个iframe页面,iframe内引用的是B域名的sub-index.htm页面,但是为了避免出
现在index.htm页面中出现滚动条,需要明确知道sub-index.htm页面的高度和宽度,可是sub-index.htm的页面内容是不可控的,可能会根据不同用户页面大小会不一样;问题就是如何把sub-index.htm页面的高度和宽度传递给index.htm页面?
具体解决:
1、在index.htm页面中声明一个js函数process(height, width);用来实现设置页面内iframe的高度和宽度;
2、
在sub-index.htm页面中再内嵌一个隐藏的iframe,iframe的src指向A域名下的页面ex.htm?height=xx&
width=yy,该页面没有任何内容,只是用来传递sub-index.htm页面加载完之后的宽度和高度这两个数据的,页面内js拿到request
中的参数之后直接调用parent.parent.process(height, width);完成对父页面宽度和高度的设置;
如图:
2、iframe 跨域子页面操作父页面的问题,真心求教
我刚解决过来类似的问题 你在源子页写COOKIE的时候,同时调用这里也保存父页所在域的cookie, 然后你想操作的时候,再调一个,在do文件里判断和控制JS跳出新窗口. year.明白了吗? 动动手就可以了. 哈哈,再想一下,哦,原来session也可以啊
3、如何控制iframe内跨域页面不打开新页面
我刚解决过类似的问题 你在子页写COOKIE的时候,同时调用这里也保存父页所版在域的cookie, 然后权你想操作的时候,再调一个,在do文件里判断和控制JS跳出新窗口. year.明白了吗? 动动手就可以了. 哈哈,再想一下,哦,原来session也可以啊.
parent.parent.document.getElementById,应该是可以操作的,我之前有一个子页面操作父级页面iframe高度的例子,跟你这个比较类似吧,因为你c.html是跟a.html同一个域名的,所以c.html应该是可以操作a.html的内容。
我的思路是:建议你不要在c.html中用定时器监测hash变化,你可以在b.html中操作完毕后,先删除src为c.html的iframe,完后再重新创建一个iframe,src为c.html,完后通过c.html中的js控制a.html中的内容,比如你可以把值放到a.html中的hidden的input标签里。我觉得这应该是能够做到的。
4、如何解决iframe跨域子域名间跨域操作js的问题
建立隐藏iframe前页面b.html,并前页定义函数a服务器端返数据重定向同域页面(a.html)a.html写段js执行函数a提取a.html数据obj并数据作参数传给函数window.parent.a(obj);a.html包含b.html所window.parent.a(obj)其实调用b.html定义a函数硬跨域数据拿
5、如何用javascript 跨域获取iframe子页面的元素信息
jquery、contentWindow
$("#ii")[0].contentWindow
如果用jquery选择器获得iframe,需要加一个【0】;
$("#ii")[0].contentWindow.$("#dd").val()
可以在得到iframe的内window对象后接着使用jquery选择器进行容页面操作;
6、在父页面中如何修改iframe中嵌套的子页面的字体大小和样式,急!急!貌似涉及到了跨域的问题希望各
1.htm母窗口代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
<script language=javascript>
function gogo()
{
document.frames["f"].document.styleSheets.mycss.addRule("P","color:green");
}
</script>
</head>
<body>
<iframe id="f" src=2.htm></iframe>
<p><input type="button" value="按钮" name="B3" onclick="gogo();"></p>
</body>
</html>
2.htm iframe引用的网页代码:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
<style id="mycss" type=text/css>
p {color:red}
</style>
</head>
<body>
<p>22222222</p>
<p>22222222222</p>
<p>22222222222</p>
</body>
</html>
7、如何用javascript 跨域获取iframe子页面的元素信息
javascript获取iframe框架中,加载的页面document对象
因为浏览器安全限制,对跨域访问的页面,其document对象无法读取、设置属性
function getDocument(iframe)
{
var Doc;
try{
Doc = iframe.contentWindow.document;// For IE5.5 and IE6
}
catch(ex){}
if(!Doc)
{
Doc = iframe.contentDocument;// For NS6
}
return Doc;
}
用iframe嵌套页面是,如果父页面要获取子页面里面的内容,可以使用contentWindow或者contentDocument,其区别如下:
a>contentWindow 这是个只读属性,返回指定的iframe的窗口对象。它虽然不是标准的一部分,但各个主流浏览器都支持。
b>contentDocument Firefox 支持,IE6,IE7都不支持,IE8开始支持,需要如此访问 document.frames['J_mainframe'].document。
兼容获取document对象:
var getIFrameDoc = function(){
var iobj = document.createElement("iframe");
document.getElementsByTagName("body")[0].appendChild(iobj);
return iobj.contentDocument || iobj.contentWindow.document;
}