Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Is it possible to determine the word the user clicked on

Reply
Thread Tools

Is it possible to determine the word the user clicked on

 
 
glevik@gmail.com
Guest
Posts: n/a
 
      04-19-2005
Hello,

Anyone that can think of a way to programmaticaly determine the word on
an HTML page that the user clicked on will be my hero for life.

Leo

 
Reply With Quote
 
 
 
 
Jay
Guest
Posts: n/a
 
      04-20-2005

<(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
> Hello,
>
> Anyone that can think of a way to programmaticaly determine the word on
> an HTML page that the user clicked on will be my hero for life.


wouldn't each word have to be inside a container in order to get an event to
fire? say a <div> or a <a href>
You could put each word in a <href> and give it a name attribute. Hope you
don't have too many words!
You could change the text to not be link colour, not be underlined and not
change the cursor using CSS.

You could then find out which word was clicked based on the "name"

Jay


 
Reply With Quote
 
 
 
 
RobG
Guest
Posts: n/a
 
      04-20-2005
Jay wrote:
> <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed) ups.com...
>
>>Hello,
>>
>>Anyone that can think of a way to programmaticaly determine the word on
>>an HTML page that the user clicked on will be my hero for life.

>
>
> wouldn't each word have to be inside a container in order to get an event to
> fire? say a <div> or a <a href>
> You could put each word in a <href> and give it a name attribute. Hope you
> don't have too many words!
> You could change the text to not be link colour, not be underlined and not
> change the cursor using CSS.
>
> You could then find out which word was clicked based on the "name"


If attempting this, <span> would likely be a better element to use as
its effect on styles is more neutral while providing similar
functionality (it can be given an id and onclick).


Here is some play code that puts a <span> around each word, gives it
an ID and an onclick function. Note that it totally screws any
internal markup, but that could be fixed with a better parsing
algorithm - the script just splits on word boundaries, then when
putting stuff back in it only adds spans & onclicks to things that
contain only word characters.

Have fun.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title> Every word clickable </title>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function addClicks(){
var x, i=arguments.length;
while ( x = arguments[--i] ) {
addSpans(document.getElementById(x));
}
}

function addSpans(t) {
var s, w = t.firstChild.data.split(/\b/);
var n = t.id;
while (t.firstChild && t.removeChild(t.firstChild));
for (var i=0, len=w.length; i<len; i++){
if ( /\W/.test(w[i]) ) {
s = document.createTextNode(w[i]);
} else {
s = document.createElement('span');
s.id = n + '-' + i;
s.appendChild(document.createTextNode(w[i]));
s.onclick = function() {
alert('This is ' + this.id + ', it contains:'
+ '\n' + this.firstChild.data);};
}
t.appendChild(s);
}
}

</script>
</head>
<body onload="addClicks('p1','p2','p3')">
<p id="p1">here is some text in a document. It will become
clickable when the page loads.</p>
<p id="p2">Counter-measure 63 shows that hyphenated words are
a bother, they get split in two as do decimal numbers like
8797.9879.</p>
<p id="p3">Any HTML markup <b>really</b> makes a mess</p>
</body>
</html>


--
Rob
 
Reply With Quote
 
RobB
Guest
Posts: n/a
 
      04-20-2005

http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> Hello,
>
> Anyone that can think of a way to programmaticaly determine the word

on
> an HTML page that the user clicked on will be my hero for life.
>
> Leo


Not that hard in IE, using a textRange...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">

body {
font: normal 14px "comic sans ms";
color: darkred;
}
..silver {
background: silver;
}

</style>
<script type="text/javascript">

function grabword(e)
{
var tgt;
if ((e = e || window.event)
&& (tgt = e.srcElement || e.target)
&& !/((^A$)|(INPUT))/i.test(tgt.tagName))
{
rng = document.body.createTextRange();
rng.moveToPoint(e.x, e.y);
rng.expand('word');
document.forms[0].t.value += '~ ' + rng.htmlText + '\n';
rng.pasteHTML('<span class="silver">' + rng.htmlText + '</span>');
}
}

document.onclick = grabword;

</script>
</head>
<body>
Anyone that can think of a way to programmaticaly determine the word on
an HTML page that the user clicked on will be my hero for life.
<form>
<textarea name="t" style="width:150px;height:300px;overflow:hidden;">
</textarea>
</form>
</body>
</html>

Another matter elsewhere. See if this helps:

http://www.faqts.com/knowledge_base/...html/aid/33674

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
how do I determine which button is clicked with HTML control? Samuel ASP .Net Web Controls 6 07-28-2005 08:36 AM
Determine RadioButton Clicked Wayne Wengert ASP .Net 0 03-17-2005 11:31 PM
How to determine which cell was clicked in as ASP.NET DataGrid Daniel Walzenbach ASP .Net Datagrid Control 4 06-03-2004 06:04 PM
How to determine which cell was clicked in as ASP.NET DataGrid Daniel Walzenbach ASP .Net 2 06-02-2004 06:48 AM
How to determine which control in a template column was clicked... Jim Mitchell ASP .Net Datagrid Control 2 10-29-2003 12:09 PM



Advertisments