有个办法不知道你能否用:
直接指定iframe的src肯定是异步的;但是在iframe外边使用document.write方法直接将html代码写入iframe的document是同步的,所以基于这个原理:try
{
//在客户端创建xmlhttp对象
var oHttp = new ActiveXObject("Microsoft.XMLHTTP");
// open url
oHttp.Open("POST","your html url", false);
//发送请求
oHttp.send(oRequestXML.xml);
//得到html源码
var strRet = oHttp.responseText;
//得到iframe对象
var oFrame = document.frames("yourframeid");
//得到frame document对象
var oDoc = oframe.document;
//写入html
oDoc.open();
oDoc.write(strRet);
oDoc.close();
//继续你的处理
......
}
catch(e)
{
//出错处理
......
}//note注意:
如果你所装载的html包含了类似 <script src="xxxx.js"></script>
这样的代码,不适用,建议你将这样的js都变成inline的js,
并且只适用于IE5.0以上!
直接指定iframe的src肯定是异步的;但是在iframe外边使用document.write方法直接将html代码写入iframe的document是同步的,所以基于这个原理:try
{
//在客户端创建xmlhttp对象
var oHttp = new ActiveXObject("Microsoft.XMLHTTP");
// open url
oHttp.Open("POST","your html url", false);
//发送请求
oHttp.send(oRequestXML.xml);
//得到html源码
var strRet = oHttp.responseText;
//得到iframe对象
var oFrame = document.frames("yourframeid");
//得到frame document对象
var oDoc = oframe.document;
//写入html
oDoc.open();
oDoc.write(strRet);
oDoc.close();
//继续你的处理
......
}
catch(e)
{
//出错处理
......
}//note注意:
如果你所装载的html包含了类似 <script src="xxxx.js"></script>
这样的代码,不适用,建议你将这样的js都变成inline的js,
并且只适用于IE5.0以上!
解决方案 »
- 麻烦求指教JS基础问题。。
- IE7下 window.open方法失效
- 帮忙看看这个正则表达式
- js如何取当前日期时间/格式为:yyyy-mm-dd hh:mm:ss
- 点击空白地方DIV消失 为什么IE下没有效果
- 通过js新增的text如何在新增text文本框时保留原来text的值
- 怎么实现javascript 建立桌面快捷方式
- 在mozilla下怎样判断span元素内容改变
- 怎样在window.open的时候控制窗口的大小,以及去掉浏览器的菜单栏和工具栏还有地址栏等
- 怎么使用变量作为表单元素的名称
- 奇怪的逻辑表达式与正则表达式问题
- 能否给iframe(designMode="on")中的文字设置字体、字号、颜色?(IE5)
oHttp.send(oRequestXML.xml) ====> oHttp.send()
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
var t;
function fnload(){
ifrMain.document.URL = "b.html";
}
function callBack(){
alert("b page is loaded ......")
}
</script>
<BODY onload = "fnload()"><iframe id = "ifrMain" width = "500" height = "500"></iframe>
</BODY>
</HTML>b.html:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>
alert("hello world");
</script>
<BODY onload="parent.callBack()">
hello world
</BODY>
</HTML>要往下做的事情在callBack里面写。
你是徐俊吧,呵呵
我知道,我们以前是使用这种方法,但是现在是不仅要写一般的HTML代码,还要写一些JS脚本在里面,这样就比较麻烦了
»Øµ÷º¯ÊýÒ²²»Ðа¡£¬¿´ÎÒµÄÊÔÑ飺
a.html:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
var t;
function fnload(){
ifrMain.document.URL = "b.html";
alert("main page")
}
function callBack(){
alert("b page is loaded ......")
}
</script>
<BODY onload = "fnload()"><iframe id = "ifrMain" width = "500" height = "500"></iframe>
</BODY>
</HTML>b.html:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
//alert("hello world");
function fnload()
{
alert("child page")
ddd.style.fontSize = 20;
ddd.style.color = "red";
parent.callBack()
}
</script>
<BODY onload="fnload()">
<div id = "ddd">hello world</div>
</BODY>
</HTML>ÎÒÒªµÄЧ¹ûÊÇÏȵ¯³ö"child page"ÔÙµ¯³ö"b page is loaded ......"£¬×îºóµ¯³ö"main page"
¶øʵ¼Ê½á¹ûÈ´ÊÇ"main page"-> "child page"->"b page is loaded ......"
回调函数也不行啊,我的试验如下:
a.html:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
var t;
function fnload(){
ifrMain.document.URL = "b.html";
alert("main page")
}
function callBack(){
alert("b page is loaded ......")
}
</script>
<BODY onload = "fnload()"><iframe id = "ifrMain" width = "500" height = "500"></iframe>
</BODY>
</HTML>b.html:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
//alert("hello world");
function fnload()
{
alert("child page")
ddd.style.fontSize = 20;
ddd.style.color = "red";
parent.callBack()
}
</script>
<BODY onload="fnload()">
<div id = "ddd">hello world</div>
</BODY>
</HTML>我需要的效果是先弹出"child page",然后是"b page is loaded ......",最后是"main page"
而实际结果是"main page"-> "child page"->"b page is loaded ......"