IE提供了一些命令用于页面与外部环境的交互,其中Copy命令是将选中的内容拷贝(复制)到剪贴板。可以如下的JavaScript代码实现:
function copyToClipboard(obj)
{
var range = document.body.createTextRange();if (range){range.moveToElementText(obj);range.select();var result = range.execCommand("Copy");}
}
出于安全原因,IE会显示一个提示框,以提示用户是否允许复制到剪贴板,如下图。
我们需要根据用户选择“允许”还是“不允许”来给出进一步的提示信息,但却无法得知用户的选择!MSDN说:Returns true if the command is successful. 言外之意就是,如果执行不成功,应该返回false。可测试的结果却是:不管“允许”还是“不允许”,result总是true!
除
execCommand之外,IE还提供了几个用于查询命令执行情况的方法:
bEnabled =
object.
queryCommandEnabled(
sCommand);
bIndeterm =
object.
queryCommandIndeterm(
sCommand);
bDone =
object.
queryCommandState(
sCommand);
bSupported =
object.
queryCommandSupported(
sCommand);
但这些方法在这件事情上毫无用处,不管选择“允许”还是“不允许”,这些方法的结果都一样!如与本文目的直接有关的应该是queryCommandState,MSDN说:(This method ) returns a Boolean value that indicates the current state of the command.但不管“允许”还是“不允许”,该方法总是返回false!
如何知道用户选择的是"Allow access”还是"Don't allow”?答案是“无法知道”!
想当年,我们曾为IE的DHTML举手称庆!也为IE的巨大包容性而“心怀感激”!然而,在“坐稳江山”之后,IE却无可避免地“自满”起来,真是宿命!
所以,竞争,才是推动技术进步的不二动力!