canadianjameson
08-23-2007, 11:39 PM
Bah, it's raining hard :(
Hi all :D
I'm using a neat little script that prevents harvesters from gathering e-mail addresses but I need it to do something slightly different.
the script is here:
http://www.javascriptkit.com/script/script2/antispamemail.shtml
What I like about it is that I can create a whole array of e-mail addresses within the script and display them as I wish using <script>displaycontact(contacts[0], "emails", "text", "")</script>
and the array looks like this:
// Anti-Spam Email Displayer- By JavaScriptKit.com
// Visit JavaScript Kit (http://javascriptkit.com) for this script and more.
// This notice must stay intact for use
var contacts=new Array()
//Specify text and corresponding email address.
//Use [at] and [dot] in place of "@" and "." for anti spam purpose:
contacts[0]=["Chris Timber", "chris[at]whatever[dot]com"]
contacts[1]=["John Doe", "johndoe[at]whatever2[dot]com"]
contacts[2]=["Jannet Low", "janet[at]whatever3[dot]com"]
contacts[3]=["Albert Good", "albertgood[at]whatever4[dot]com"]
//Specify caption text to display within SELECT menu. Only applicable if you're using the form option:
var dropmenucaption="CONTACT US FORM "
function displaycontact(emailarray, cssclass, displaymethod, extrainfo){
if (displaymethod=="text"){
document.write('<span class="' + cssclass + '">\n')
if (typeof emailarray[0]=="object"){ //if array passed consists of multiple elements
for (i=0; i<emailarray.length; i++){
var seperator=(i<emailarray.length-1)? extrainfo : ""
document.write('<a href="mailto:' + modifyemail(emailarray[1])+ '">'+ emailarray[i][0] + '</a>' + seperator)
}
}
else //else if it is a single array element
document.write('<a href="mailto:' + modifyemail(emailarray[1])+ '">'+ emailarray[0] + '</a>')
document.write('</span>')
}
else if (displaymethod=="form"){
document.write('<form>\n')
document.write('<select size="' + extrainfo + '" onChange="jumptooption(this)" class="' + cssclass + '">\n')
document.write('<option value="caption">' + dropmenucaption + '</option>\n')
for (i=0; i<emailarray.length; i++)
document.write('<option value="mailto:' + modifyemail(emailarray[i][1]) +'">' + emailarray[i][0] + ' </option>\n')
document.write('</select></form>\n')
}
}
function modifyemail(emailitem){
var modified=emailitem.replace(/\[aux]/gi, "@")
modified=modified.replace(/\[point]/gi, ".")
return modified
}
function jumptooption(themenu){
if (themenu.options[themenu.selectedIndex].value !="caption")
location=themenu.options[themenu.selectedIndex].value
}
//USAGE INSTRUCTION. displaycontact(1st paramter, "2nd paramter", "3rd paramter", "4th paramter")
//1st parameter: Input the name of the array containing the list of email addresses. To display one single email, input the corresponding array element.
//2nd parameter: Input the CSS Classname that is to be applied. Enter arbitrary name for none.
//3rd parameter: Input either "form" or "text." Former will display email in drop down menu. Later in plain text. Only "text" mode supports displaying of single email address!
//4th parameter: If in "form" mode, enter an integer to control the height of the <SELECT> tag. If "text" mode, enter any string to act as a divider between each email text. For example "|", "<br>" etc.
//SAMPLE USAGES (uncomment below to see)
//displaycontact(contacts, "textstyle", "text", " | ")
//displaycontact(contacts, "formstyle", "form", "1")
//displaycontact(contacts[2], "textstyle", "text", "")
... what I need to change is that, for my current application, i need to display the user's e-mail address itself, such as
var contacts=new Array()
//Specify text and corresponding email address.
//Use [at] and [dot] in place of "@" and "." for anti spam purpose:
[B]contacts[0]=["chris[at]whatever[dot]com", "chris[at]whatever[dot]com"]
contacts[1]=["johndoe[at]whatever2[dot]com", "johndoe[at]whatever2[dot]com"]
but doing so does not convert the [at] or [dot] to the @ or . symbol like it does in the second part of the array, which is what i need :D:p
Can anyone help me make that change (preferably keeping intact the original functionality so i can use the script in both situations in the future)
I envisioned something like
<script>displayNameAndEmail(contacts[0], "emails", "text", "")</script>
[I]for what it does now
and
<script>displayEmail(contacts[0], "emails", "text", "")</script>
for displaying only the e-mail when the link you want viewable isn't the persons name but the e-mail address itself (while maintaining the anti-harvester spirit :p:D
Hi all :D
I'm using a neat little script that prevents harvesters from gathering e-mail addresses but I need it to do something slightly different.
the script is here:
http://www.javascriptkit.com/script/script2/antispamemail.shtml
What I like about it is that I can create a whole array of e-mail addresses within the script and display them as I wish using <script>displaycontact(contacts[0], "emails", "text", "")</script>
and the array looks like this:
// Anti-Spam Email Displayer- By JavaScriptKit.com
// Visit JavaScript Kit (http://javascriptkit.com) for this script and more.
// This notice must stay intact for use
var contacts=new Array()
//Specify text and corresponding email address.
//Use [at] and [dot] in place of "@" and "." for anti spam purpose:
contacts[0]=["Chris Timber", "chris[at]whatever[dot]com"]
contacts[1]=["John Doe", "johndoe[at]whatever2[dot]com"]
contacts[2]=["Jannet Low", "janet[at]whatever3[dot]com"]
contacts[3]=["Albert Good", "albertgood[at]whatever4[dot]com"]
//Specify caption text to display within SELECT menu. Only applicable if you're using the form option:
var dropmenucaption="CONTACT US FORM "
function displaycontact(emailarray, cssclass, displaymethod, extrainfo){
if (displaymethod=="text"){
document.write('<span class="' + cssclass + '">\n')
if (typeof emailarray[0]=="object"){ //if array passed consists of multiple elements
for (i=0; i<emailarray.length; i++){
var seperator=(i<emailarray.length-1)? extrainfo : ""
document.write('<a href="mailto:' + modifyemail(emailarray[1])+ '">'+ emailarray[i][0] + '</a>' + seperator)
}
}
else //else if it is a single array element
document.write('<a href="mailto:' + modifyemail(emailarray[1])+ '">'+ emailarray[0] + '</a>')
document.write('</span>')
}
else if (displaymethod=="form"){
document.write('<form>\n')
document.write('<select size="' + extrainfo + '" onChange="jumptooption(this)" class="' + cssclass + '">\n')
document.write('<option value="caption">' + dropmenucaption + '</option>\n')
for (i=0; i<emailarray.length; i++)
document.write('<option value="mailto:' + modifyemail(emailarray[i][1]) +'">' + emailarray[i][0] + ' </option>\n')
document.write('</select></form>\n')
}
}
function modifyemail(emailitem){
var modified=emailitem.replace(/\[aux]/gi, "@")
modified=modified.replace(/\[point]/gi, ".")
return modified
}
function jumptooption(themenu){
if (themenu.options[themenu.selectedIndex].value !="caption")
location=themenu.options[themenu.selectedIndex].value
}
//USAGE INSTRUCTION. displaycontact(1st paramter, "2nd paramter", "3rd paramter", "4th paramter")
//1st parameter: Input the name of the array containing the list of email addresses. To display one single email, input the corresponding array element.
//2nd parameter: Input the CSS Classname that is to be applied. Enter arbitrary name for none.
//3rd parameter: Input either "form" or "text." Former will display email in drop down menu. Later in plain text. Only "text" mode supports displaying of single email address!
//4th parameter: If in "form" mode, enter an integer to control the height of the <SELECT> tag. If "text" mode, enter any string to act as a divider between each email text. For example "|", "<br>" etc.
//SAMPLE USAGES (uncomment below to see)
//displaycontact(contacts, "textstyle", "text", " | ")
//displaycontact(contacts, "formstyle", "form", "1")
//displaycontact(contacts[2], "textstyle", "text", "")
... what I need to change is that, for my current application, i need to display the user's e-mail address itself, such as
var contacts=new Array()
//Specify text and corresponding email address.
//Use [at] and [dot] in place of "@" and "." for anti spam purpose:
[B]contacts[0]=["chris[at]whatever[dot]com", "chris[at]whatever[dot]com"]
contacts[1]=["johndoe[at]whatever2[dot]com", "johndoe[at]whatever2[dot]com"]
but doing so does not convert the [at] or [dot] to the @ or . symbol like it does in the second part of the array, which is what i need :D:p
Can anyone help me make that change (preferably keeping intact the original functionality so i can use the script in both situations in the future)
I envisioned something like
<script>displayNameAndEmail(contacts[0], "emails", "text", "")</script>
[I]for what it does now
and
<script>displayEmail(contacts[0], "emails", "text", "")</script>
for displaying only the e-mail when the link you want viewable isn't the persons name but the e-mail address itself (while maintaining the anti-harvester spirit :p:D