怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。

laosan 2008-01-09 04:13:42
怎么样把左边框架中的源代码完整赋值给右边框架的一个文本框?要求IE/FF/Opera可以运行。
...全文
269 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
swucy 2009-05-22
  • 打赏
  • 举报
回复
sdfsdf
laosan 2008-01-11
  • 打赏
  • 举报
回复
我的需求就是6楼的东西。

<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>

只是这个代码不符合要求。
frm1.document.documentElement.outerHTML
返回的代码是不完整的。

所以采用XMLHttpRequest解决了要求,但是在IE中显示为乱码,查了一些乱码的处理办法,还是没有解决。
Go 旅城通票 2008-01-11
  • 打赏
  • 举报
回复
16楼是服务器端的vbs读文件的.放js里肯定出错了

建议楼主把你的代码帖出来,别人好帮你解决
nicholsky 2008-01-11
  • 打赏
  • 举报
回复
outerHTML是会自动格式化内容,又或者把16楼的改成客户端的JS代码应该也行,但有个安全设置提示,其实XMLHTTP是最好的选择了,编码是比较麻烦的问题,以前也因为这原因后来把页面全部编码改成统一。
Go 旅城通票 2008-01-11
  • 打赏
  • 举报
回复
6楼的代码在
ie6.0,ff2.0,opera8.54

都可以运行.
tantaiyizu 2008-01-10
  • 打赏
  • 举报
回复
帮顶
xuStanly 2008-01-10
  • 打赏
  • 举报
回复
看来必须借助服务器端做代理,解决跨域和编码的问题。
mady55 2008-01-10
  • 打赏
  • 举报
回复
parent.frames["right"].document.getElementById("Text1").value = parent.frames["right"].document.documentElement.outerHTML

上面的错了,刚才试了一下,这样可以
mady55 2008-01-10
  • 打赏
  • 举报
回复
parent.frames["right"].document.getElementById("Text1").value = parent.frames[left].toString()
你可以试试
netWild 2008-01-10
  • 打赏
  • 举报
回复
如果有跨域的情况,那只能用XMLHttpRequest了。

至于兼容IE和FF,可以参考prototype

PS:好像楼主没提有跨域的情况
dh20156 2008-01-10
  • 打赏
  • 举报
回复
xuStanly
依依MyLove
等 级:
发表于:2008-01-09 23:30:467楼 得分:0
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"> </iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?

这样是不行的,你可以通过服务端XMLHTTP先获取目标页,然后才好操作!
rjzou2006 2008-01-10
  • 打赏
  • 举报
回复
还是有跨域的问题呢.
laosan 2008-01-10
  • 打赏
  • 举报
回复
楼上的兄弟,不行啊。

错误:缺少对象‘server’
草原可可 2008-01-10
  • 打赏
  • 举报
回复
XMLHttpRequest

用这个东西要注意编码的转换 会出现乱码
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
laosan 2008-01-10
  • 打赏
  • 举报
回复
我使用XMLHTTP解决了把左边的代码“完整”(完整,比较重要),outerHTML 的不完整。
但是所有的文件编码都设置为gb2312的时候,返回值都是乱码。


在FF加上
XMLHttpRequest.overrideMimeType("text/html;charset=gb2312");
可以解决


在IE里还是无法解决。



说明,我没有使用到服务器,就是几个html文件的本地执行。
xuStanly 2008-01-09
  • 打赏
  • 举报
回复
假如
<iframe id="frm1" name="frm1" style="width:400px;height:400px" src="left.htm"></iframe>
这里指向的不是left.htm,而是一个其他网站的页面呢?
netWild 2008-01-09
  • 打赏
  • 举报
回复
IE6,Firefox2下测试通过,手边没有Opera,未测试
-------------------
default.htm
<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>


left.htm
<!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>


right.htm
<!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>
xiaolei1982 2008-01-09
  • 打赏
  • 举报
回复
除去之外的,document.body.outerHTML不会丢失值吧
muxrwc 2008-01-09
  • 打赏
  • 举报
回复
framest
还涉及跨域?
O_O
rjzou2006 2008-01-09
  • 打赏
  • 举报
回复
编码和跨域
xmlhttprequest

可以实现

加载更多回复(2)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧