日期:2014-05-18  浏览次数:20536 次

页面之间传数据的问题
需求:用户要在操作界面输入信息,信息包括文字,图片等。在输入信息的时候,要求随时可以预览已经输入的信息(打开一个新窗口)。
目前我的做法是点预览按钮,调用一个JS函数,函数如下:

function   view()
{
                var   content   =   document.getElementById( "txtContent ").value;
                content   =   escape(content);
                //alert(content);
                var   url   =   "InfoView.aspx?content= "+content;
                var   win=window.open(url);
}
当数据比较少的时候还没问题,数据一多就提示出错:无效指针。
为什么会出现这种情况?应该怎么解决?或者有没有更好的方法实现随时预览的功能?大家指点!

------解决方案--------------------
做个全局的缓存,该缓存每次点击更新,只缓存准备要看的东西
------解决方案--------------------
建议你通过一个页面实现,
<script>
//显示窗体
function show(n)
{
document.getElementById( "AdLayer ").innerText=n;
document.getElementById( "AdLayer ").style.backgroundColor= "transparent ";
//获取鼠标的x轴坐标
x=event.clientX+document.body.scrollLeft;
//获取鼠标的y轴坐标
y=event.clientY+document.body.scrollTop;
//显示弹出窗体
AdLayer.style.display= "block ";
//设置窗体的x、y轴的坐标
AdLayer.style.left=x;
AdLayer.style.top=y;
}
//隐藏窗体
function Hide()
{
//隐藏窗体
AdLayer.style.display= "none ";
}
</script>
<div>
<div id= "AdLayer " style= "BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; DISPLAY: none; FONT-SIZE: 9pt; FILTER: progid: DXImageTransform.Microsoft.Shadow(color=#999999,direction=135,strength=3); FLOAT: left; VERTICAL-ALIGN: sub; BORDER-LEFT: gray 1px solid; COLOR: red; BORDER-BOTTOM: gray 1px solid; POSITION: absolute; BACKGROUND-COLOR: #ffffff "> </div>
</div>

利用这种方式显示你对应的相关信息。这样再多也没问题了


------解决方案--------------------
var win = window.open();
win.document.body.innerHTML = "这里是你要显示的内容 ";