主题:怎么样不设置validateRequest将iframe编辑器的值存入数据库
我自己做了一个iframe编辑器,在前台代码中我还用了一个type为hidden的文本框来存储从iframe读取的数据,但是提交的时候系统提示说“从客户端检测到有潜在危险的Request.Form 值”,我知道设置page的属性可以避免这个问题,但是这样做的结果是不安全,所以我又在后台将文本框中的值用Server.HtmlEncode()进行解码,但是不知道为什么不起作用~~请问有没有什么办法可以解决这个问题?
这个是前台代码:
<div id="wordEditer">
<div> <img src="image/b.png" alt="粗体" onclick="runCmd('bold',null);" /> </div>
<div> <img src="image/i.png" alt="斜体" onclick="runCmd('italic',null);" /> </div>
<div> <img src="image/u.png" alt="下划线" onclick="runCmd('underline',null);" /> </div>
<div> <img src="image/upimg.png" alt="上传图片" /> </div>
<div> <img src="image/link.png" alt="超链接" onclick="CreatLink();" /> </div>
<div> <img src="image/li1.png" alt="无序列表" onclick="runCmd('insertUnorderedList',null);" /> </div>
<div> <img src="image/li2.png" alt="有序列表" onclick="runCmd('insertOrderedList',null);" /> </div>
<div> <img src="image/emotion.png" alt="表情图片" /> </div>
<iframe id="editer" src="blank.html" scrolling="yes"> </iframe>
<input id="Button1" type="button" value="button" runat="server" onclick="Click();" onserverclick="Button1_ServerClick" />
<input id="Hidden1" type="hidden" runat="server" />
</div>
这个是js代码:
// JScript 文件
//获取IFRAME内部窗口和文档对象
function getWin(){ return document.getElementById("editer").contentWindow; }
function getDoc(){ return getWin().document; }
//开启设计模式
function init(){
getDoc().designMode="on";
getDoc().contentEditable=true;
}
function runCmd(cmd,value)
{
getDoc().execCommand(cmd,false,value);
getWin().focus();
}
function CreatLink()
{
getDoc().execCommand("createLink");
}
function Click()
{
document.all.Hidden1.value=editer.document.body.innerHTML;
document.getElementById("Button1").click();
}
这个是后台cs代码:
protected void Button1_ServerClick(object sender, EventArgs e)
{
string str = Server.HtmlEncode(this.Hidden1.Value);
Response.Write(str);
}
这个是前台代码:
<div id="wordEditer">
<div> <img src="image/b.png" alt="粗体" onclick="runCmd('bold',null);" /> </div>
<div> <img src="image/i.png" alt="斜体" onclick="runCmd('italic',null);" /> </div>
<div> <img src="image/u.png" alt="下划线" onclick="runCmd('underline',null);" /> </div>
<div> <img src="image/upimg.png" alt="上传图片" /> </div>
<div> <img src="image/link.png" alt="超链接" onclick="CreatLink();" /> </div>
<div> <img src="image/li1.png" alt="无序列表" onclick="runCmd('insertUnorderedList',null);" /> </div>
<div> <img src="image/li2.png" alt="有序列表" onclick="runCmd('insertOrderedList',null);" /> </div>
<div> <img src="image/emotion.png" alt="表情图片" /> </div>
<iframe id="editer" src="blank.html" scrolling="yes"> </iframe>
<input id="Button1" type="button" value="button" runat="server" onclick="Click();" onserverclick="Button1_ServerClick" />
<input id="Hidden1" type="hidden" runat="server" />
</div>
这个是js代码:
// JScript 文件
//获取IFRAME内部窗口和文档对象
function getWin(){ return document.getElementById("editer").contentWindow; }
function getDoc(){ return getWin().document; }
//开启设计模式
function init(){
getDoc().designMode="on";
getDoc().contentEditable=true;
}
function runCmd(cmd,value)
{
getDoc().execCommand(cmd,false,value);
getWin().focus();
}
function CreatLink()
{
getDoc().execCommand("createLink");
}
function Click()
{
document.all.Hidden1.value=editer.document.body.innerHTML;
document.getElementById("Button1").click();
}
这个是后台cs代码:
protected void Button1_ServerClick(object sender, EventArgs e)
{
string str = Server.HtmlEncode(this.Hidden1.Value);
Response.Write(str);
}