阅读:16344回复:19
如何设计js代码,使得在ff中可以copy选中的文本
在ie中可以这样:
<script language=javascript> function CPtext(id){ var obj = document.getElementById(id); obj.select(); js=obj.createTextRange(); js.execCommand("Copy"); } </script> <input name="textfield" type="text" ID="CodeText1" value="hello"> <input type="button" onClick="CPtext('CodeText1')" name="Submit" value="复制到剪贴板"> 在firefox中呢?firefox不支持createTextRange 拜服能搞定的大侠! |
|
|
1楼#
发布于:2005-09-21 20:43
好像在Firefox中不能~
|
|
|
2楼#
发布于:2005-09-21 20:43
谢谢楼顶,我也觉得不行,因为这是firefox安全策略决定的,如果js可以随便拷贝信息那么用户信息就有可能被随意窃取。但是我觉得firefox最好改进一下,可以让用户设定一些安全站点列表,用户可以解放这些安全站点js的拷贝功能。
|
|
|
3楼#
发布于:2005-09-21 20:43
可以让用户设定一些安全站点列表,用户可以解放这些安全站点js的拷贝功能。 我不知道 Firefox 是怎么设计的,不过个人认为,最危险就是这种思想。 你决定不下,于是借口给用户更多选择,把责任推给用户,然后用户就犯错误了,就中招了。 对于可能造成危害的功能,根本就不要给用户机会,安全才有保证。 |
|
4楼#
发布于:2005-09-21 20:43
shadowgg:谢谢楼顶,我也觉得不行,因为这是firefox安全策略决定的,如果js可以随便拷贝信息那么用户信息就有可能被随意窃取。但是我觉得firefox最好改进一下,可以让用户设定一些安全站点列表,用户可以解放这些安全站点js的拷贝功能。回到原帖 可以的,在 user.js 加入: user_pref("capability.policy.policynames", "allowclipboard"); user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess"); user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess"); user_pref("capability.policy.allowclipboard.sites", "site1 site2 ... siteN"); site1, site2, ...siteN 用空格分开。 |
|
|
5楼#
发布于:2005-09-21 20:43
|
|
|
6楼#
发布于:2005-09-21 20:43
你说的这些东西仅仅是理论上听起来很好,实际当中作用很小,因为用户根本不会吃你那一套。不客气地说,就是那种要人喂到跳蚤嘴里才起作用的跳蚤药。 这么多年来 IE 上 ActiveX 的教训还不够吗?IE 提供的那些设置、那些等级,有用吗?不要下载、运行来历不明的软件、不要用管理员权限登录,说了多少年又多少年,有人听劝告吗? 举个身边的例子,FF 有了问题,本论坛有多少人会先去看 FAQ?会先去搜索?还不是直接就发贴子来问,同样的问题反复回答?比如 Linux 下安装 Firefox 的问题,我就回答过好几次。 以前我对这种上来就问的人是深恶痛绝,但是这种情况多了,渐渐地我明白这是人的本性,不应苛责。 什么是易用性? 不是 Longhorn/Mac 那个什么超级眩的基于 DirectX 还是 OpenGL 的狗屁不通的图形界面,而是用户上来不用任何设置就用,用上三年什么状况都不出,使用过程中程序什么问题都不问。 IE7 刚去了 ActiveX,现在 MS 变本加厉,又来了一个集成更加紧密的 .Net 2.0,据说网页可调用整个 .Net 类库。如果是真的,安全问题只会更突出。等着瞧吧。 |
|
7楼#
发布于:2005-09-21 20:43
其实有时候我们根本就不需要那么多功能。
|
|
|
8楼#
发布于:2005-09-21 20:43
你说的这些东西仅仅是理论上听起来很好,实际当中作用很小,因为用户根本不会吃你那一套。不客气地说,就是那种要人喂到跳蚤嘴里才起作用的跳蚤药。 IE 以往的默认安全性设置较低,才做成 activex 安装问题,但 sp2 收紧默认安全性设置,activex 自动安装问题已经解决。当然用户主动安装或授权安装恶意软件/控件仍然不能避免。 安全意识需要时间培养。国外用户较早接触互联网,安全意识一般较高,基本上不存在那些比如乱按确认等问题。 新人不熟悉环境,有问题直接在论坛发问是十分平常。如果解答他们同时给出 FAQ/KB 链接,他们下次便懂得在哪里找答案。当然也不能完全避免"重犯"。 [quote="mopz0506"]IE7 刚去了 ActiveX,现在 MS 变本加厉,又来了一个集成更加紧密的 .Net 2.0,据说网页可调用整个 .Net 类库。如果是真的,安全问题只会更突出。等着瞧吧。[/quote] FF 不是也发展 xpcom 来加强功能吗?重要的是怎样加强安全性,而非禁止或不支持。 |
|
|
9楼#
发布于:2005-09-21 20:43
这个例子很明显的展示出,用户仅仅是使用默认设置,你不能指望用户会设置你那一套安全机制。 而且,普通用户只会越设越松,绝不会越设越紧。 我的经验是,只有少数人会通过学习自行寻找解决办法,绝大多数永远保持在 "新人" 状态。 [quote="abc@home"] FF 不是也发展 xpcom 来加强功能吗?重要的是怎样加强安全性,而非禁止或不支持。 [/quote] 我的意思是,整个安全性架构当中,根本就不应当存在用户这个角色。否则即是一个失败的安全性架构,没有任何安全性可言。 IE 也好,Firefox 也好,永远不要把本地应用和网络上下载来的程序混为一谈,然后指望用户善加区分 -- 用户既不会,也不能。 |
|
10楼#
发布于:2005-09-21 20:43
如果不开发 xpcom,FF 怎样满足企业用户执行 intranet 程式的需要? |
|
|
11楼#
发布于:2005-09-21 20:43
abc@home,我们说的不是一回事。
你反复强调已经提供了某某功能,用户需要做的仅仅是善加使用,他们之所以中招,仅仅是由于用户智力低下、缺乏训练;我说的是,你不能也无法要求用户正确使用你那一套东西,你那一套东西是反人性的。 如果我设计一套软件,保证绝对安全,但是要求你记住 256 位数字的密码,你认为合理吗?现在用户就是被要求做这类事情。 一款安全的软件,仅仅仔细检查输入值保证不超过范围是不够的,必须从设计开始,就要基于这个高度真实的假定:绝大多数用户永远只会使用默认值。 软件开发人员的确给了用户一个相当有效的刹车,只不过它需要 1000 公斤的力才能踩下去,结果仅有 10% 的人能够正常使用,因此对 90% 的人来说等于不存在。 至于想用 FF 上跑 Intranet 的人,和我这样用 FF 浏览的人有什么关系呢?如果现有方案不能保证两者都可用,那么请重新设计一种方案,而不是说:就这样了,将就着用用吧。 用户不是 IT 专家。相反,用户是用 FF 下载完成后,却不知道文件存放在什么地方的人。用户是直到硬盘损坏,才想起来没有备份的人。用户是永远用管理员账号登陆的人。用户是用生日作密码的人。用户是在所有需要密码的地方使用同一个密码的人。 这是生来就写在每个人的 DNA 上的东西,你很难通过简单说教来改变。开发人员应当正视这个现实。 |
|
12楼#
发布于:2005-09-21 20:43
上面的例子不太明显,这里再说一个,就是 Office 软件自动存盘功能。
我们都知道,Word 有个功能,就是每隔 5 分钟会自动帮用户存一下盘,这样万一死机不会一整天都白费工夫。 我们不能取消这个功能,代之以 在手册里写一句 用户应当记住每隔 5 分钟存盘一次,否则可能会将所做的修改全部丢失 就万事大吉。 用户不是闹钟,不可能达到这个要求。 |
|
13楼#
发布于:2005-09-21 20:43
呵呵楼上的这条说得是我 “用户是永远用管理员账号登陆的人”,我知道不用管理员账号安全可换了别的账号上不了网,难道用非管理员账号登陆还需要再装一遍拨号软件吗?
|
|
14楼#
发布于:2005-09-21 20:43
有时很怪用户以管理员帐号登录.
在M$的Windows 上, 有些应用程序的不良设计会诱导用户以管理员帐号登录的. 以QQ为例, QQ将用户的个人资料包括聊天记录存放在QQ程序所在的文件夹上, 这时, 如果该文件夹所在的磁盘分区格式是 NTFS ,结果, 在默认设置下, 除了管理员, 普通用户的帐号是不能使用QQ的. 在Linux上, 就很少出现上面的情况. 因为linux中的应用程序通常将用户配置文件放在用户的主文件夹上, 至少 LumaQQ 如此. |
|
上一页
下一页