gpt4 book ai didi

c# - document.selection.createRange() 在 chrome 和 safari 中不起作用

转载 作者:行者123 更新时间:2023-11-28 12:46:39 26 4
gpt4 key购买 nike

我使用文本模式作为多行选项的文本框,它在 IE 中工作正常,Mozilla 在 Chrome 和 safari 中出现问题。示例代码如下

<asp:TextBox ID="txtRootDescription" onpaste="DoPaste(this);" Width="600px" Rows="10" Columns="72" MaxLength="500" TextMode="MultiLine" runat="server"></asp:TextBox>

function DoPaste(control) {
maxLength = control.attributes["maxlength"].value;
if (maxLength) {
var oTR = control.document.selection.createRange();
}}

在 Chrome 中,它给我一个错误“无法读取未定义的属性‘选择’”

最佳答案

非IE(不包括IE9)浏览器中(见注释),使用window.getSelection获取selection对象。在 IE < 9 中,原始代码应该可以工作。

function GetSelection () {
if (window.getSelection) { // all browsers, except IE before version 9
var selectionRange = window.getSelection ();
return selectionRange.toString();
}
else {
if (document.selection.type == 'None') {
return "";
}
else {
var textRange = document.selection.createRange ();
return textRange.text;
}
}
}

function DoPaste(control) {
maxLength = control.attributes["maxlength"].value;
if (maxLength) {
var oTR = GetSelection();
}
}

一般来说,使用选择范围非常棘手,因为浏览器支持差异很大。

这是一个很好的引用,其中列出了浏览器支持(以及哪些代码在哪里工作)以及在相应浏览器中工作的示例代码:http://help.dottoro.com/ljefwsqm.php

关于c# - document.selection.createRange() 在 chrome 和 safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com