解决模式窗口(showModalDialog)下无法复制文本的问题
以下部分内容整理自: http://topic.csdn.net/u/20100510/23/1f4ed757-3356-4023-ac63-7174e2ed7739.html
红色字体为本人所加。
1:更改方式,用window.open实现
2:纯文字的话可以用无边框的只读的textarea文本框代替[即TextBox设置为ReadOnly,但是不能Disabled,这样可以保证使用鼠标右键菜单]
3:
修改前:
<html>
<body>
拉选这段文字,并复制
</body>
</html>
修改后:
<html>
<body>
<span id="Lab1">拉选这段文字,并复制</span>
<script>
document.all["Lab1"].contentEditable = "True";
</script>
</body>
</html>
contentEditable=true是让内容变为设计模式,这要不仅可以拷贝,还可以修改,默认值为"inherit"。在一些自定义功能强的地方有应用。如果让整个body的contentEditable变为true,则里面的东西就可以乱拉了,对应用也不好。
contentEditable详细的介绍见:http://www.cnblogs.com/zxlin25/archive/2009/03/30/1425171.html
4.用div模拟。也就是用灰色div遮住背景
补充:
我想到另外一种方法, 就是给要复制文字的控件,比如label, 添加双击事件, 利用JavaScript脚本, 双击就获取当前控件的值到剪贴板上.
优缺点:
第1种:不是解决办法。有时候必须使用模式窗口。
第2种:一个页面个别数据项还好,如果是多个的话,就很麻烦了。
第3种:很方便,但是要防止原数据被修改。
第4种:见过这种控件,UI看起来很炫。我能想到的就是,父窗口有一个Div,div里面有一个iframe,通过点击,将div置于最顶层,并用灰色div遮住背景,修改div里面的iframe的src地址为要打开的链接地址。如果要污染原生的window.open之类的方法,我猜测需要将target设置为iframe。具体没有实现过。
浙公网安备 33010602011771号