[thelist] Using JavaScript for non-clickable email addresses
Jono
ox4dboy at comcast.net
Mon Jan 31 09:42:36 CST 2005
I started this thread a while back, and have settled on a temporary
solution, using a combination of things I found through [theList]. I
think it is a reasonable good approach to the problem, as far as
non-server-side approaches go. It validates and has been tested on IE
6, FF, and Netscape 7 for PC, and FF, Safari, IE 5.2.3 for Mac OS
10.3.7. I also tested this with JAvascript disable and enabled in FF
on both platforms. I will outline what I have done for anyone who
might need something like this in the future:
: : | T H E H T M L | : :
<head>
<script type="text/javascript" language="javascript"
src="../../../../js/email-fix.js"></script>
<script type="text/javascript" language="javascript"
src="../../../../js/email.js"></script>
</head>
<html>
<!-- F O R P L A I N - T E X T E M A I L A D D R E S S E S
-->
<!-- the code below calls to email-fix.js -->
<p><a name="anchor1" onmouseup="hello(this)"><span
class="nodecorate">lakefalls</span><span
class="nodecorate">@</span><span
class="nodecorate">davidsbrown.com</span></a></p>
</html>
<html>
<!-- F O R C L I C K A B L E E M A I L A D D R E S S E S -->
<!-- the code below calls to email-fix.js and email.js -->
<!-- <noscript> calls email-fix.js, and <script> calls email.js -->
<script
type="text/javascript">mail2("name","domain","0","?subject=email
subject here&body=email body text here","Contact Us NOW")</script>
<noscript>
Contact Us NOW: <a name="anchor1" onmouseup="hello(this)"><span
class="nodecorate">name</span><span
class="nodecorate">@</span><span
class="nodecorate">domain.com</span></a>
</noscript>
</html>
: : | T H E J A V A S C R I P T | : :
// this is email-fix.js
// courtesy of Robert Vreeland
<script type="text/javascript">
function hello(){
linkArray = "";
if(arguments[0].nodeName == ("A" || "a")){
linkArray = "mailto:";
linkArray = linkArray + arguments[0].firstChild.innerHTML;
linkArray = linkArray + "@";
linkArray = linkArray +
arguments[0].firstChild.nextSibling.nextSibling.innerHTML;
arguments[0].href = linkArray;
}
}
</script>
// this is email.js
// courtesy of http://www.bronze-age.com/nospam/
// Email.js version 5
var tld_ = new Array()
tld_[0] = "com";
tld_[1] = "org";
tld_[2] = "net";
tld_[3] = "ws";
tld_[4] = "info";
tld_[10] = "co.uk";
tld_[11] = "org.uk";
tld_[12] = "gov.uk";
tld_[13] = "ac.uk";
var topDom_ = 13;
var m_ = "mailto:";
var a_ = "@";
var d_ = ".";
function mail(name, dom, tl, params)
{
var s = e(name,dom,tl);
document.write('<a href="'+m_+s+params+'">'+s+'</a>');
}
function mail2(name, dom, tl, params, display)
{
document.write('<a
href="'+m_+e(name,dom,tl)+params+'">'+display+'</a>');
}
function e(name, dom, tl)
{
var s = name+a_;
if (tl!=-2)
{
s+= dom;
if (tl>=0)
s+= d_+tld_[tl];
}
else
s+= swapper(dom);
return s;
}
function swapper(d)
{
var s = "";
for (var i=0; i<d.length; i+=2)
if (i+1==d.length)
s+= d.charAt(i)
else
s+= d.charAt(i+1)+d.charAt(i);
return s.replace(/\?/g,'.');
}
More information about the thelist
mailing list