This Rebol script will ask you your email:
and the creates the java script to include in your web pages:
The program itself expali that you have to put in your webpage <head> and <body> the following code:
<head>
<script src="NoSpm.js">
</script>
<body>
Try so spam this email:
<a href="javascript:void(0)">Contact me !</a>
</body>
Then you have to put this NoSpm.js script generated in the same folder of webpage, in my case:
function NoSpmAddress() { return String.fromCharCode(109,97,120,105,110,116,64,116,105,115,99,97,108,105,46,105,116); } function Zap() { return String.fromCharCode(109, 97, 105, 108, 116, 111, 58) + NoSpmAddress(); }
You can see the result at this page: http://www.maxvessi.net/rebsite/no-spam.html
Here the script source:
REBOL[
Title: "coding-mailto"
Version: 1.0.0
File: %coding-maito.r
Author: "Philippe Le Goff"
Date: 11-Sep-2004
Email: pl--legoff--free-fr
Copyright: {
Philippe Le Goff-2004
License CeCILL
http://www.inria.fr/valorisation/logiciels/Licence.CeCILL-V1.pdf
http://www.inria.fr/valorisation/logiciels/Licence.CeCILL-V1_VA.pdf
}
Purpose: {a tool for coding the "mailto" info in a html page and avoid some spam }
Note: {
This tool is just for fun.
Write you email in the field "mailto" and click on the button "Code it ".
Then, copy the results in your html code.
I suggest to create a javascript file apart, with generated code.
}
]
;/// Functions Definitions ///
prejoin: func [
"Reduce and join a block of values."
block [block!] "Values to reduce and join"
/with string [string! ]
][
if empty? block: reduce block [return block]
if with [block: next block forskip block 2 [ insert block string ] ]
block: head insert head block copy ""
append either series? first block [copy first block] [form first block ] next block
]
;/// code ////
to-ascii: func ["retun ASCII code of a chars string"
value [ char! string! ]
/local value-block email-string ] [
value-block: copy []
email-string: ""
if (type? value) = char! [return to-integer value]
count: length? value
loop count [append value-block to-integer pick value 1 value: next value ]
email-string: prejoin/with value-block ","
return email-string
]
;/// GUI Definitions ///
my-styles: stylize [
bout: btn gray center middle 85x20 font-size 11 font-name "Courrier" font-color white
tx-inf: text ivory font-size 10 font-name "Courrier" middle center
field-inf: field 200x18 ivory font-size 10 font-name "Courrier" middle center
vtext: text white bold right middle font-size 12 font-name "Courrier"
a-propos-text: text 200 white font-size 11 font-name "Courrier" font-color white
]
; ///////////
; backdrop image
img-fond: load 64#{
R0lGODlhBAEyAPEBAFxcfeDp+O/r7PD1/SH5BAEAAAEALAAAAAAEATIAAQKHhI+p
y+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfM
pvMJjUqn1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4
SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+QkaKjpKylcAADs=
}
;////////////
coding-layout: func [
/local val-text ][
val-text: to-ascii f1/text
result: rejoin [ " function NoSpmAddress() { return String.fromCharCode(" val-text "); }" newline "function Zap() { return String.fromCharCode(109, 97, 105, 108, 116, 111, 58) + NoSpmAddress(); }" ]
; here we define the layout
my-lay: layout/size [
styles my-styles
backdrop img-fond
at 10x5
tx-inf yellow "Code to be placed in a javascript << NoSpm.js >> file : "
at 15x25
bar 400x2 yellow
at 30x1
str1: tx-inf 400x150 to-string result middle left
return
at 10x150
tx-inf yellow "Code to be placed between the <HEAD> ... </HEAD> tags of your HTML pages"
at 15x170
bar 400x2 yellow
at 30x175
tx-inf {<script SRC="NoSpm.js"></script>} middle left
return
at 10x230
below
tx-inf yellow "Code to be placed in your email-contact tag of your HTML pages"
at 15x248
bar 400x2 yellow
return
at 30x255
tx-inf 350 middle left {<a href="javascript:void(0)" onclick="this.href=Zap()">Contact me !</A> }
return
at 330x290
bout " Close " 40x20 124.154.220 [unview coding-layout]
] 430x330 ;end of my-lay
f1/text: ""
my-lay
] ; end of coding-layout
;//// Windows "A propos" (standard)
aPropos: func [/local lay] [
lay: copy [
styles my-styles
across origin 0x0 space 0x0
backdrop img-fond
image logo.gif box 200x24
effect [merge gradmul 1x0 0.0.0 128.128.128] return
pad 10x10 guide
]
foreach [name value] third system/script/header [
if not none? value [
append lay reduce [
'vtext mold :name 'tab 'a-propos-text form value
]
switch/default type?/word value [
string! [append lay mold [with [feel: none]]]
email! [append/only lay compose/deep [
alive?: true error? try [emailer/to (value)]
]]
url! [append/only lay compose/deep [
error? try [browse (value)]
]]
file! [append/only lay compose/deep [
error? try [editor (value)]
]]
] [append lay [with [feel: none]]]
append lay 'return
]
]
append lay [
pad -10x10
box 200x24 effect [merge gradmul 1x0 128.128.128 0.0.0]
button "Close" black [unview/only lay] edge [size: none]
]
view/new/title center-face lay: layout lay join system/script/header/title system/script/header/version
]
; /////// main layout ///////
lay-main: layout/tight/size [
styles my-styles
backtile img-fond
box 25x50 effect [merge gradmul 0x1 0.0.0 128.128.128]
across
at 30x15
tx-inf "mailto:"
f1: field-inf "your.mail-address@here.com" [result: "" ]
at 285x15
bout "Code it !" 50x20 0.106.5 [view/new/title center-face coding-layout "Code" ]
at 350x15
bout "Info" 40x20 167.17.17 [aPropos]
at 390x15
bout "Quit" 40x20 124.154.220 [quit]
] 450x50
;/////////// End GUI defs ///////////////////
;///// MAIN ////
view/new center-face lay-main
do-events
Nice to read about email appending thanks to shared this.
ReplyDeleteemail appending Companies
Amazing and excellent post. Thanks for sharing this awesome data. You can also share these kind of post in different social medias such as, Facebook, Twitter followed by LinkedIn, Google+ and Pinterest
ReplyDeleteExcellent and amazing post. Worth the time. You can also share these post in different social medias to get a higher ground like Facebook, the famous media Twitter and in the LinkedIn profiles joined by Google Plus and the Infographic sharing Site Pinterest.
ReplyDeleteGreat post, and I am glad that you shared this useful info with us. This blog is very helpful. You can also share this Information on many other sites for example like Free Samples 411, a clean business site like OS Business Opportunities swiftly followed by Jfissures and Asaimjapan and also the Johny Adams site.
ReplyDelete