【发布时间】:2014-04-14 01:50:31
【问题描述】:
我有一个 javascript 函数来选择单元格(html 表格)onclick="select_cell(this)" 的内容。毫不奇怪,除了 IE,它在任何地方都可以正常工作。奇怪的是,我发现如果我设置了超时,它就可以工作了……100 毫秒是不够的:它只工作了一半时间。 200 毫秒,效果很好!
function select_cell(element){
if (window.getSelection) {
var range = document.createRange();
setTimeout(function(){
range.selectNode(element);
window.getSelection().addRange(range);
}, 200);
}
else if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
}
}
问题是我不喜欢这个超时。有人有解释吗?或者更好的是,跳过此超时的解决方案?
【问题讨论】:
-
这对你有用吗 -> jsfiddle.net/WdeTM/372,你有没有把代码放在 DOM 中的元素之后。
-
是的,伙计!有用!太感谢了!主要问题是 if(document.selection)。我用 if(document.body.createTextRange) 替换了它,就像你的例子一样,问题就解决了!
标签: javascript internet-explorer selection html-table