frameID.style.height = iframeID.contentWindow.document.body.scrollHeight,在src为其它域页面的时候,提示拒绝访问,
ajax的xmlhttp好像可以实现。
但是如果直接用这种方法的话,遇到相对路径的链接就会找不到原文件。
我曾经研究出了一种比较苯的方法,那就是先用xmlhttp取到scr的scrollheight,
然后再替换成实际的页面。
这样做有不好的方面,我先声明一下:
1: scr页面要打开两次
2: 页面被打开两次,那么速度就被降低了。
如果你的程序对速度要求不是很严的话,可以尝试尝试这种方法。
声明: 这是我查到的跨域访问的唯一方法(前提是跨域文件不可以修改,如果可以修改就比较简单了,我现在就是用的可以修改的那种方法,在我的网站的主页使用,到现在为止还挺好的,呵呵)
ar dyniframe=new Array();
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
dyniframe[dyniframe.length] = document.getElementById(iframeids[i]);
if (dyniframe[i] && !window.opera)
{
url = dyniframe[i].src;
// code for Mozilla, etc.
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp)
{
//xmlhttp.onreadystatechange=xmlhttpChange;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
if(xmlhttp.readyState == 4)
{
iframeids[i].document.designMode="On";
iframeids[i].document.open();
iframeids[i].document.write(xmlhttp.responseText);
iframeids[i].document.body.contentEditable="true";
iframeids[i].document.close();
}
var len = iframeids[i].document.body.scrollHeight;
dyniframe[i].height = len;
len = iframeids[i].document.body.scrollHeight;
dyniframe[i].height = len + 30;
//xmlhttp.close();
iframeids[i].document.designMode="Off";
iframeids[i].document.clear();
iframeids[i].URL=url;
}
}
}
}
这是我说得打开两次页面的方法,应该可以解决你的问题