关于这个问题,我已经调查了好久,基本是不可能。
但是也不是完全那么绝对,ajax的xmlhttp好像可以实现。
但是如果直接用这种方法的话,遇到相对路径的链接就会找不到原文件。我曾经研究出了一种比较苯的方法,那就是先用xmlhttp取到scr的scrollheight,
然后再替换成实际的页面。
这样做有不好的方面,我先声明一下:
1: scr页面要打开两次
2: 页面被打开两次,那么速度就被降低了。如果你的程序对速度要求不是很严的话,可以尝试尝试这种方法。
声明: 这是我查到的跨域访问的唯一方法(前提是跨域文件不可以修改,如果可以修改就比较简单了,我现在就是用的可以修改的那种方法,在我的网站的主页使用,到现在为止还挺好的,呵呵)
但是也不是完全那么绝对,ajax的xmlhttp好像可以实现。
但是如果直接用这种方法的话,遇到相对路径的链接就会找不到原文件。我曾经研究出了一种比较苯的方法,那就是先用xmlhttp取到scr的scrollheight,
然后再替换成实际的页面。
这样做有不好的方面,我先声明一下:
1: scr页面要打开两次
2: 页面被打开两次,那么速度就被降低了。如果你的程序对速度要求不是很严的话,可以尝试尝试这种方法。
声明: 这是我查到的跨域访问的唯一方法(前提是跨域文件不可以修改,如果可以修改就比较简单了,我现在就是用的可以修改的那种方法,在我的网站的主页使用,到现在为止还挺好的,呵呵)
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;
}
}
}
}这是我说得打开两次页面的方法,应该可以解决你的问题
xhttp能读取到scrollheight吗?是怎么读取的?能提供这点的提示代码吗?跨域文件可以修改是怎么实现的?
用xmlhttp读取的流程,你可以去看看网上关于ajax的说明,比如下面的两句话是什么意思,你可以自己去调查调查。
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
、、、、、、、、、、、xmlhttp.responseText 是从scr页面读取到的代码
iframeids[i].document.write(xmlhttp.responseText); 是把那些代码写入iframe文档
iframeids[i].document.body.scrollHeight 就是取得iframe页面的scrollheight这样你应该明白了吧
至于修改跨域文件,前提是跨域文件是你做的,这个是前提条件。
别人的网页在iframe是不允许你给他修改的,这是ie的自身功能
1\明白了,其实是把对方页面内容读过来,写入到自己定义的iframe,在取得这个iframe的高\宽;
2\自己做的网页怎么定义为可修改的呢?