15楼#
发布于:2005-09-21 20:43
你反复强调已经提供了某某功能,用户需要做的仅仅是善加使用,他们之所以中招,仅仅是由于用户智力低下、缺乏训练;我说的是,你不能也无法要求用户正确使用你那一套东西,你那一套东西是反人性的。 我说的是一些功能和安全性是不能兼得,必须取舍。最这情况下提供用户选举是唯一解决办法。只要设计得好,便不会有太大安全问题。我没说过任何用户智力低、缺乏训练等等。 而你则坚持不应该给用户决定,干脆不提供哪些会影响安全性的功能。对吗? |
|
|
16楼#
发布于:2005-09-21 20:43
可能我理解有误,但你举的例子 让我感觉 "其他人" 会这么说。 [quote="abc@home"] 而你则坚持不应该给用户决定,干脆不提供哪些会影响安全性的功能。对吗?[/quote] 是。 我的经验是,用户总是倾向于做出错误的选择,因为外在环境诱导(前面有人用的这个词很传神)用户这么做。 "是" 和 "否" 两种选择看似 50 vs. 50,但你做个调查,我保证用户点 "是" 的机会在 90% 以上。 用户无法理解那么复杂的东西,他只知道点 "是" 就能正常工作了。至于会导致的其它后果,他根本看不见。 好比安装软件,总是有一个 licenses 页面,要你点 "接受" 还是 "拒绝" -- 普通用户无论如何也无法理解里面的法律用语(我估计你 abc@home 也不行,呵呵),他能做的就是被动 "接受"。所以实际上根本没得选择,因为这跟问 你要死还是要活 类似。 目前的软件太复杂,必须有人帮用户决定,就象必须有律师帮我们处理法律事务。 |
|
17楼#
发布于:2005-09-21 20:43
/************************************************** http://www.krikkit.net/howto_javascript_copy_clipboard.html 将字符串maintext复制到剪贴板 **************************************************/ function setClipboard(maintext) { if (window.clipboardData) { return (window.clipboardData.setData("Text", maintext)); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext=maintext; str.data=copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid=Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); return true; } return false; } /************************************************** http://www.codebase.nl/index.php/command/viewcode/id/174 返回剪贴板的内容 **************************************************/ function getClipboard() { if (window.clipboardData) { return(window.clipboardData.getData('Text')); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); clip.getData(trans,clip.kGlobalClipboard); var str = new Object(); var len = new Object(); try { trans.getTransferData('text/unicode',str,len); } catch(error) { return null; } if (str) { if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString); else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString); else str = null; } if (str) { return(str.data.substring(0,len.value / 2)); } } return null; } 至于如何获取textarea里选中的文字,参看 http://www.freewebs.com/yang1984/content.html |
|
18楼#
发布于:2005-09-21 20:43
这样虽然可以复制了,但是也太复杂了嘛,
这样虽然可以复制了,但是也太复杂了嘛 |
|
19楼#
发布于:2005-09-21 20:43
linux系统里是选择了文本就复制.. 在哪都行
linux有两个剪贴板,一个是选择就复制的,还一个是ctrl+c(也有可能是别的热键,取决程序了) windows里也有实现这样功能的软件,名字忘了,也是开源的. 我觉得这样的功能不该由网页里的代码实现...要是用户不喜欢怎么板?用户不感觉自己受到强迫吗?喜欢这个功能,自己装上软件就行了何必这么麻烦. 你觉得这个功能好跨平台吗?每个浏览器都支持? |
|
上一页
下一页