怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。 [已结贴,结贴人:laosan]
加为好友
发送私信
在线聊天
laosan
老三
等级:
可用分等级:乞丐
总技术专家分:1233
总技术专家分排名:16345
揭帖率:89.60%
发表于:2008-01-09 16:13:42 楼主
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。
问题点数:300 回复次数:22 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复
----------------------------
muxrwc
潜水修行。。。
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?
这个,用document.body.innerHTML
会丢失值的..
并且一些body之外的函数也不可以...
如果非要这样的话就用XMLHTTP||XMLHTTPRequest
吧
xuStanly
依依MyLove
关注+帮顶
XMLHttpRequest也有编码和跨域的问题。
rjzou2006
骑士
编码和跨域
xmlhttprequest
可以实现
muxrwc
潜水修行。。。
发表于:2008-01-09 17:46:154楼 得分:15
framest
还涉及跨域?
O_O
xiaolei1982
小磊--如果没有你,我在哪里又有什么可惜,反正一切来不及,反正没有了自已...
除去之外的,document.body.outerHTML不会丢失值吧
netWild
网无忌
IE6,Firefox2下测试通过,手边没有Opera,未测试
-------------------
default.htm
left.htm
right.htm
xuStanly
依依MyLove
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"> </iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?
rjzou2006
骑士
还是有跨域的问题呢.
修改 删除 举报 引用 回复
dh20156
风之石
xuStanly
依依MyLove
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"> </iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?
这样是不行的,你可以通过服务端XMLHTTP先获取目标页,然后才好操作!
netWild
如果有跨域的情况,那只能用XMLHttpRequest了。
至于兼容IE和FF,可以参考prototype
PS:好像楼主没提有跨域的情况
mady55
parent.frames["right"].document.getElementById("Text1").value = parent.frames[left].toString()
你可以试试
mady55
小马哥
parent.frames["right"].document.getElementById("Text1").value = parent.frames["right"].document.documentElement.outerHTML
上面的错了,刚才试了一下,这样可以
xuStanly
依依MyLove
看来必须借助服务器端做代理,解决跨域和编码的问题。
laosan
我使用XMLHTTP解决了把左边的代码“完整”(完整,比较重要),outerHTML 的不完整。
但是所有的文件编码都设置为gb2312的时候,返回值都是乱码。
在FF加上
XMLHttpRequest.overrideMimeType("text/html;charset=gb2312");
可以解决
在IE里还是无法解决。
说明,我没有使用到服务器,就是几个html文件的本地执行。
mufengwsp2004
可可西里
XMLHttpRequest
用这个东西要注意编码的转换 会出现乱码
laosan
楼上的兄弟,不行啊。
错误:缺少对象‘server’
laosan
我的需求就是6楼的东西。
只是这个代码不符合要求。
frm1.document.documentElement.outerHTML
返回的代码是不完整的。
所以采用XMLHttpRequest解决了要求,但是在IE中显示为乱码,查了一些乱码的处理办法,还是没有解决。
nicholsky
发表于:2008-01-11 14:12:2921楼 得分:15
outerHTML是会自动格式化内容,又或者把16楼的改成客户端的JS代码应该也行,但有个安全设置提示,其实XMLHTTP是最好的选择了,编码是比较麻烦的问题,以前也因为这原因后来把页面全部编码改成统一。
加为好友
发送私信
在线聊天
laosan
老三
等级:
可用分等级:乞丐
总技术专家分:1233
总技术专家分排名:16345
揭帖率:89.60%
发表于:2008-01-09 16:13:42 楼主
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。
问题点数:300 回复次数:22 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复
----------------------------
muxrwc
潜水修行。。。
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?
这个,用document.body.innerHTML
会丢失值的..
并且一些body之外的函数也不可以...
如果非要这样的话就用XMLHTTP||XMLHTTPRequest
吧
xuStanly
依依MyLove
关注+帮顶
XMLHttpRequest也有编码和跨域的问题。
rjzou2006
骑士
编码和跨域
xmlhttprequest
可以实现
muxrwc
潜水修行。。。
发表于:2008-01-09 17:46:154楼 得分:15
framest
还涉及跨域?
O_O
xiaolei1982
小磊--如果没有你,我在哪里又有什么可惜,反正一切来不及,反正没有了自已...
除去之外的,document.body.outerHTML不会丢失值吧
netWild
网无忌
IE6,Firefox2下测试通过,手边没有Opera,未测试
-------------------
default.htm
+展开
-HTML
<script language="javascript">
function cloneCode(){
frm2.document.getElementById("txt").value = (typeof(HTMLElement) != "undefined"?
frm1.document.createElement("DIV").appendChild(frm1.document.documentElement.cloneNode(true)).parentNode.innerHTML
:
frm1.document.documentElement.outerHTML
)
}
</script>
<div><input type="button" value="LeftFrame's code To RightFrame's TextArea" onclick="cloneCode()" /></div>
<div style="float:left">
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"></iframe>
</div>
<div style="float:left">
<iframe id="frm2" name="frm2" style="width:400px;height:400px" src="right.htm"></iframe>
</div>
function cloneCode(){
frm2.document.getElementById("txt").value = (typeof(HTMLElement) != "undefined"?
frm1.document.createElement("DIV").appendChild(frm1.document.documentElement.cloneNode(true)).parentNode.innerHTML
:
frm1.document.documentElement.outerHTML
)
}
</script>
<div><input type="button" value="LeftFrame's code To RightFrame's TextArea" onclick="cloneCode()" /></div>
<div style="float:left">
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"></iframe>
</div>
<div style="float:left">
<iframe id="frm2" name="frm2" style="width:400px;height:400px" src="right.htm"></iframe>
</div>
left.htm
+展开
-HTML
<!!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>网页标题</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function hello(){
alert('Hello!');
}
</script>
</head>
<body>
LeftFrame
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>网页标题</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function hello(){
alert('Hello!');
}
</script>
</head>
<body>
LeftFrame
</body>
</html>
right.htm
+展开
-HTML
<!!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>网页标题</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
RightFrame<br ><br >
<textarea id="txt" name="txt" style="width:360px;height:300px">code...</textarea>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>网页标题</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
RightFrame<br ><br >
<textarea id="txt" name="txt" style="width:360px;height:300px">code...</textarea>
</body>
</html>
xuStanly
依依MyLove
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"> </iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?
rjzou2006
骑士
还是有跨域的问题呢.
修改 删除 举报 引用 回复
dh20156
风之石
xuStanly
依依MyLove
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"> </iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?
这样是不行的,你可以通过服务端XMLHTTP先获取目标页,然后才好操作!
netWild
如果有跨域的情况,那只能用XMLHttpRequest了。
至于兼容IE和FF,可以参考prototype
PS:好像楼主没提有跨域的情况
mady55
parent.frames["right"].document.getElementById("Text1").value = parent.frames[left].toString()
你可以试试
mady55
小马哥
parent.frames["right"].document.getElementById("Text1").value = parent.frames["right"].document.documentElement.outerHTML
上面的错了,刚才试了一下,这样可以
xuStanly
依依MyLove
看来必须借助服务器端做代理,解决跨域和编码的问题。
laosan
我使用XMLHTTP解决了把左边的代码“完整”(完整,比较重要),outerHTML 的不完整。
但是所有的文件编码都设置为gb2312的时候,返回值都是乱码。
在FF加上
XMLHttpRequest.overrideMimeType("text/html;charset=gb2312");
可以解决
在IE里还是无法解决。
说明,我没有使用到服务器,就是几个html文件的本地执行。
mufengwsp2004
可可西里
XMLHttpRequest
用这个东西要注意编码的转换 会出现乱码
+展开
-VBScript
Function BytesToBstr(body)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
'转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP调用有中文字符的网页得到的将是乱码
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
'转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP调用有中文字符的网页得到的将是乱码
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
laosan
楼上的兄弟,不行啊。
错误:缺少对象‘server’
laosan
我的需求就是6楼的东西。
+展开
-JavaScript
function cloneCode(){
frm2.document.getElementById("txt").value = (typeof(HTMLElement) != "undefined"?
frm1.document.createElement("DIV").appendChild(frm1.document.documentElement.cloneNode(true)).parentNode.innerHTML
:
frm1.document.documentElement.outerHTML
)
}
frm2.document.getElementById("txt").value = (typeof(HTMLElement) != "undefined"?
frm1.document.createElement("DIV").appendChild(frm1.document.documentElement.cloneNode(true)).parentNode.innerHTML
:
frm1.document.documentElement.outerHTML
)
}
只是这个代码不符合要求。
frm1.document.documentElement.outerHTML
返回的代码是不完整的。
所以采用XMLHttpRequest解决了要求,但是在IE中显示为乱码,查了一些乱码的处理办法,还是没有解决。
nicholsky
发表于:2008-01-11 14:12:2921楼 得分:15
outerHTML是会自动格式化内容,又或者把16楼的改成客户端的JS代码应该也行,但有个安全设置提示,其实XMLHTTP是最好的选择了,编码是比较麻烦的问题,以前也因为这原因后来把页面全部编码改成统一。
加支付宝好友偷能量挖...