【问题标题】:Javascript select text with create range doesn't work in IE带有创建范围的 Javascript 选择文本在 IE 中不起作用
【发布时间】: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


【解决方案1】:

我在这里发布了一个文本选择的答案,可能对你有帮助,请查看this out

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多