JavaScript DHTML/HTML/Text Selection
Содержание
Capturing a Text Selection
<HTML>
<HEAD>
<TITLE>Getting Selected Text</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var isNav4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) == 4)
var isNav4Min = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4)
var isIE4Min = (navigator.appName.indexOf("Microsoft") != -1 && parseInt(navigator.appVersion) >= 4)
function showSelection() {
if (isNav4Min) {
document.forms[0].selectedText.value = document.getSelection()
} else if (isIE4Min) {
if (document.selection) {
document.forms[0].selectedText.value =
document.selection.createRange().text
event.cancelBubble = true
}
}
}
if (isNav4) {
document.captureEvents(Event.MOUSEUP)
}
document.onmouseup = showSelection
</SCRIPT>
</HEAD>
<BODY>
<H1>Getting Selected Text</H1>
<HR>
<P>Select some text and see how JavaScript can capture the selection:</P>
<H2>ARTICLE I</H2>
<P>
text text text text text text text text text text text text text
</P>
</HR>
<FORM>
<TEXTAREA NAME="selectedText" ROWS=3 COLS=40 WRAP="virtual"></TEXTAREA>
</FORM>
</BODY>
</HTML>
Get selected elememnt
<html>
<head>
<script>
function selection2Element() {
var rng = document.selection.createRange();
var newHTML = "<span class="newSpan">" + rng.text + "</span>";
rng.pasteHTML(newHTML);
}
</script>
</head>
<body>
<p onmouseup="selection2Element()">select me</p>
</body>
</html>
Get selecte text in one paragraph
<html>
<head>
<script>
// global
var selectionStart;
// invoked by onselectstart
function saveStart() {
selectionStart = event.srcElement;
}
// invoked by onmouseup
function selection2Element() {
if (event.srcElement == selectionStart) {
var rng = document.selection.createRange();
var newHTML = "<span class="newSpan">" + rng.text + "</span>";
rng.pasteHTML(newHTML);
} else {
alert("Please restrict selections to within a single paragraph.");
}
}
</script>
</head>
<body>
<p onmouseup="selection2Element()" onselectstart="saveStart()">select me</p>
</body>
</html>
Using the elementFromPoint() Method
<HTML>
<HEAD>
<TITLE>document.elementFromPoint() Method</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function showElemUnderneath() {
var elem = document.elementFromPoint(event.clientX, event.clientY)
document.all.mySpan.innerText = elem.id
}
document.onmouseover = showElemUnderneath
</SCRIPT>
</HEAD>
<BODY ID="myBody">
<H1 ID="header">document.elementFromPoint() Method</H1>
<HR ID="myHR">
<P ID="instructions">Roll the mouse around the page. The coordinates
of the mouse pointer are currently atop an element<BR ID="myBR">whose ID
is:"<SPAN ID="mySpan" STYLE="font-weight:bold"></SPAN>".</P>
<FORM ID="myForm">
<INPUT ID="myButton" TYPE="button" VALUE="Sample Button" onClick="">
</FORM>
<TABLE BORDER=1 ID="myTable">
<TR ID="tr1">
<TD ID="td_A1">Cell A1</TD>
<TD ID="td_B1">Cell B1</TD>
</TR>
<TR ID="tr2">
<TD ID="td_A2">Cell A2</TD>
<TD ID="td_B2">Cell B2</TD>
</TR>
<TR ID="tr3">
<TD ID="td_A3">Cell A2</TD>
<TD ID="td_B3">Cell B2</TD>
</TR>
</TABLE>
<H2 ID="sec1">Section 1</H2>
<P ID="p1">text.</P>
<H2 ID="sec2">Section 2</H2>
<P ID="p2">text.</P>
<DIV ID="myDIV" STYLE="position:absolute; top:340; left:300; background-color:yellow">
Here is a positioned element.</DIV>
</BODY>
</HTML>
Using the TextEdit Property
<HTML>
<HEAD>
<TITLE>parentTextEdit Property</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function selectChunk() {
var chunk, range
var x = window.event.clientX
var y = window.event.clientY
for (var i = 0; i < document.forms[0].chunk.length; i++) {
if (document.forms[0].chunk[i].checked) {
chunk = document.forms[0].chunk[i].value
break
}
}
if (window.event.srcElement.parentTextEdit) {
range = window.event.srcElement.parentTextEdit.createTextRange()
range.collapse()
range.moveToPoint(x, y)
range.expand(chunk)
range.select()
}
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white">
<FORM>
<P>Choose how much of the paragraph is to be selected when you click anywhere in it:<BR>
<INPUT TYPE="radio" NAME="chunk" VALUE="character" CHECKED>Character
<INPUT TYPE="radio" NAME="chunk" VALUE="word">Word
<INPUT TYPE="radio" NAME="chunk" VALUE="sentence">Sentence
<FONT COLOR="white">.</FONT></P>
</FORM>
<P onClick="selectChunk()">
text text text text text text text text text text text text text text
</P>
</BODY>
</HTML>