测试 测试
FreeTextBox 测试
由于是使用 <iframe>来作容器
所以,用户可以随便到任何地方去Ctrl + C ,Ctrl +V 东西过来
脚本可以在提交的时候进行屏蔽
图片就比较麻烦
特别是又要给用户提供所见即所得的图片插入 编辑
又要控制用户不能乱贴图
。。。
在 OnPaste 事件中进行处理?
不行又要走回UBB的老路了
function Check()
{
var content = document.getElementById('TextBox1').value;
var re_html = /(<script)|(<form)/gmi;
//script ,form
if (re_html.test(content))
{
alert("请不要输入\<script\>或\<form\>标识");
return false;
}
//event
var re_event = /(<(\w+)(\s+)(.*)on(\w+)(\s*)=(\s*)(["']*))/gmi;
if (re_event.test(content))
{
alert("请不要输入可执行脚本");
return false;
}
//image ,.gif,.jpg,.png
var pattern = "(http(s?):((\\/\\/)|(\\\\\\\\)))(?!((\\w+\\.*)+)\\.xxx\\.com)(.*)(\\w+)(\\.gif|\\.jpg|\\.png)";
var re = new RegExp(pattern,"igm");
if (re.test(content))
{
alert("请不要引用非本站的图片");
return false;
}
if (CalculateLen(content)>6000)
{
alert("字数不要超过3000汉字");
return false;
}
return true;
}
由于是使用 <iframe>来作容器
所以,用户可以随便到任何地方去Ctrl + C ,Ctrl +V 东西过来
脚本可以在提交的时候进行屏蔽
图片就比较麻烦
特别是又要给用户提供所见即所得的图片插入 编辑
又要控制用户不能乱贴图
。。。
在 OnPaste 事件中进行处理?
不行又要走回UBB的老路了
![](/Emoticons/confused_smile.gif)
-- Update --
用了折中的办法,用户上传图片后,在编辑器中显示一张默认的“未审核”的图片,拖拽都没有问题。
最终显示的时候,再根据图片是否被允许显示来替换编辑时插入的标记.
对于非本站图片,没在 OnPaste 事件里面处理,统一在最后提交的时候检查所有<img>对象的src是不是本站或相对路径,酱子就简单多了。
示例
http://dotnet.group.uland.com/bbs/newarticle.aspx
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)