function ShowSelection()
{
var textComponent = document.getElementById('TextArea1');
var selectedText;
if (document.selection != undefined) {
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
else if (textComponent.selectionStart != undefined) {
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos,endPos)
}
alert("You selected: " + selectedText)
}
</script>
<asp:TextBox id="TextArea1" TextMode="MultiLine" runat="server">/asp:TextBox>
<a href="#" onclick=alert(ShowSelection());>Click here to display the selected text</a>
这里我试图按用户显示所选文本。我需要显示用户选择的文本。但遗憾的是,事件未触发..此代码中有任何错误。请给我解决方案..
答案 0 :(得分:1)
你的相同代码在小提琴中起作用,而不是asp.net:
<script>
function ShowSelection() {
var textComponent = document.getElementById('TextArea1');
var selectedText;
if (document.selection != undefined) {
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
} else if (textComponent.selectionStart != undefined) {
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos)
}
alert("You selected: " + selectedText)
}
</script>
<input id="TextArea1" type="textarea" />
<a href="ShowSelection()" onclick="ShowSelection()">click me </a>
点是为什么你再次在ShowSelection()
函数上调用alert,该函数本身正在发出警报,而不是返回任何字符串值。
请检查。
答案 1 :(得分:0)
几点建议:
在您的代码中TextArea1
是一个ASP控件,您不会像在给定代码中那样获取或设置它的值。为了使其正常工作,您可以执行以下任何操作:
将Asp文本框更改为HTML TextBot:因此标记将如下所示:
<input type="text" id="TextArea1"/>
包含runat="server"
更改脚本以正确获取值,就像Webruster在评论中建议的那样。或者来自this reference
var textComponent = document.getElementById('<%=TextArea1.ClientID %>');
我要说的另一件事是锚标签。由于两个原因,无需显示额外警报:
所以<a>
将如下所示:
<a href="#" onclick=ShowSelection();>Click here to display the selected text</a>