我们开始在IE11中测试我们的应用程序,并注意到window.getSelection()没有在IE11中进行选择。我没有看到IE11中不支持此属性的任何地方,并且根据我的理解window.getSelection
应该适用于所有IE版本的9。
还有其他人遇到过这个问题吗?我在这里错过了什么吗?
我创建了以下示例,该示例在IE旧版本和Chrome版本中可以正常使用,但在IE11中却没有。
$('#selectButton').on('click', function() {
$('#name').select();
var sel = window.getSelection();
alert("Slected value in text area : " + sel);
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name='selectAll' id='selectAll'>
<textarea id='name' name='name'>Sample Value</textarea>
<br>
<input type='button' value='Click Me' id='selectButton' />
</form>
更新 - 在进一步调查中,我已经找到了windows.getSelection()确实存在于IE 11中,但当所选文本位于文本区域等输入字段内时,它将无法工作。我也知道FF曾经有过类似的错误。此时我不确定这是IE中的错误还是预期的行为。
答案 0 :(得分:1)
您没有在选择中收到文字,因为您没有选择任何内容。
textarea
等互动元素有自己的选择模型,getSelection
方法不能用于从这些元素中进行选择。这也代表了Firefox。
要在IE和FF中修复此问题,请使用HTMLInputElement API:
$('#selectButton').on('click', function() {
var area = $('#name')[0],
sel;
area.select();
sel = area.value.substring(
area.selectionStart,
area.selectionEnd
);
alert("Selected value in text area : " + sel);
}
);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name='selectAll' id='selectAll'>
<textarea id='name' name='name'>Sample Value</textarea>
<br>
<input type='button' value='Click Me' id='selectButton' />
</form>
&#13;
此外,在FF中,内容可编辑元素也可以部分利用HTMLInputElement API,但不仅限于此。
答案 1 :(得分:0)
我相信答案在https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection
页面上在page的浏览器兼容性部分中,仅列出了Internet Explorer的第9版。根据Mozilla网站上的其他页面,它会有&#34;是&#34;如果在所有版本的IE中都支持Internet Explorer浏览器兼容性,则列出。
答案 2 :(得分:0)
这似乎是IE 11的一个问题。根据MS,这已在他们的新浏览器&#39; Microsoft Edge&#39;中得到修复。但不会在IE 11中修复。