By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,165 Members | 849 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,165 IT Pros & Developers. It's quick & easy.

Send to A Friend And Java Problem

P: n/a
I can't figure out why this script won't insert the subject in the email and
why can't I control the font and size being used? I'm not sure where to post
this. Let me know where if this is OT.
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function isPPC() {
if (navigator.appVersion.indexOf("PPC") != -1) return true;
else return false;
}
if(isPPC()) {
document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?subject\=Take a
look at website I found.?body=You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
}
else { document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?body\=Take
a look at this website I found. You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
}
// End -->
</script>
--
Warmest regards,

Steve Horrillo, Realtor / CEO / C.Ht.
http://brokeragenttraining.com (Advanced training for real estate
professionals)
http://over100percent.com (Realtors earn over 100 percent
http::/hipfsbo.com (a helpful place for the serious home seller or buyer who
is open to new ideas)
Jul 23 '05 #1
Share this Question
Share on Google+
15 Replies


P: n/a
1. "<!----- Begin" is an invalid javascript function. It should have
the slashes in front of it (like the end).

2.The slashes in the mailto addy are not supposed to be there.

3.Towards the end you put "<\/a>" instead of </a>

4.You should probably check out
http://msdn.microsoft.com/library/de...ned/mailto.asp
as I found it very helpful.

l8r

Jul 23 '05 #2

P: n/a
Steve Horrillo wrote:
I can't figure out why this script won't insert the subject in the email and
why can't I control the font and size being used? I'm not sure where to post
this. Let me know where if this is OT.
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function isPPC() {
if (navigator.appVersion.indexOf("PPC") != -1) return true;
else return false;
}
if(isPPC()) {
document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?subject\=Take a
look at website I found.?body=You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
}
else { document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?body\=Take
a look at this website I found. You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
}
// End -->
</script>


Your JavaScript has a problem with quotes my friend. My advice when
writing complicated strings with quotes is to build up the string in
bits in a buffer variable. Much much easier to debug.

var buf='<b>Send <A CLASS="contact" HREF="mailto:?subject=Take a';
buf+='look at website I found.&body=You can see this website at';
buf+=' http://www.BrokerAgentTraining.com" onMouseOver="window.status=';
buf+="'Send your friends e-mail about this website'; return true";
buf+='" TITLE="Send your friends e-mail about this website">this
website</a> to a friend</b>';
document.write(buf);

Also, mailto link are not reliable, and not all clients will fill in the
body...

And the separator from the subject should be a '&' not '?'
"mailto:em***@bogus.com?subject=Some subject&body=Your body text"

Lastly this is a JavaScript, not Java problem.

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
Jul 23 '05 #3

P: n/a
Steve Horrillo wrote:
I can't figure out why this script won't insert the subject in the email and
why can't I control the font and size being used? I'm not sure where to post
Which font and size? In the e-mail or on the page? One 'mailto' is
using body, the other subject. Was that intended? Otherwise, they
seem to do exactly the same thing.

If you mean in the e-mail, you only have whatever is supported by the
e-mail client, and you have no idea what that is, what is supports or
even if there is one configured. So you are taking pot luck that this
will work at all.

I have no idea why you are even testing for 'PPC' in the navigator
appName string, but here goes...
this. Let me know where if this is OT.
<SCRIPT LANGUAGE="JavaScript">
The language attribute is depreciated, type is required:

<script type="text/javascript">
<!-- Begin
Hiding script element content is unnecessary and potentially harmful -
don't do it.
function isPPC() {
if (navigator.appVersion.indexOf("PPC") != -1) return true;
It is very unreliable to depending on the browser to telling you
honestly what the platform is. Accept that it will be wrong a good
percentage of the time (but that is likely not really an issue in this
case).

What is the point of detecting 'PPC'?
else return false;
}
A simpler (though no more accurate) function is:

function isPPC() {
return /PPC/.test(navigator.appVersion);
}
if(isPPC()) {
document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?subject\=Take a
look at website I found.?body=You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
}
Try setting our your code with clear 'blocking' to make errors easier
to detect.

document.write(
'<b>Send <A CLASS="contact" HREF="mailto:?subject=Take a',
' look at website I found.?body=You can see this website at',
' http://www.BrokerAgentTraining.com\" ',
' onMouseOver="window.status=\'Send your friends e-mail',
' about this website\'; return true;"',
' TITLE="Send your friends an e-mail about this website">',
' this website<\/A> to a friend<\/b>'
);
else { document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?body\=Take
a look at this website I found. You can see this website at
http://www.BrokerAgentTraining.com\" onMouseOver="window.status=\'Send your
friends e-mail about this website\'; return true" TITLE="Send your friends
e-mail about this website">this website<\/A> to a friend</b>');
document.write(
'<b>Send <A CLASS="contact" HREF=\"mailto:\?body\=Take a',
' look at this website I found. You can see this website at',
' http://www.BrokerAgentTraining.com\" ',
' onMouseOver="window.status=\'Send your friends e-mail',
' about this website\'; return true"',
' TITLE="Send your friends e-mail about this website">',
' this website<\/A> to a friend<\/b>'
);
}
// End -->
</script>


Here's a different approach: put the two options in your page so that
they both display. Wrap each in a div and give them an ID. Now make
one disappear (say the one for PPC true) by setting its enclosing div's
display to 'none'.

Run your test in a script element just after the links or as a body
onload event. If PPC is true, change the hidden div's display to ''
and the other to 'none', e.g. (please excuse wrapping of long attribute
values, it should still cut 'n paste as source code just fine)
<div id="forPPC" style="display: none;"><b>Send <A CLASS="contact"
HREF="mailto:?subject=Take a look at website I found.&body=You can
see this website at http://www.BrokerAgentTraining.com"
onMouseOver="
window.status='Send your friends e-mail about this website';
return true;"
TITLE="Send your friends an e-mail about this website" this website</A> to a friend (PPC)</b></div>
<div id="forOther"><b>Send <A CLASS="contact"
HREF="mailto:?subject=Take a look at website I found.&body=You can
see this website at http://www.BrokerAgentTraining.com"
onMouseOver="
window.status='Send your friends e-mail about this website';
return true;"
TITLE="Send your friends an e-mail about this website" this website</A> to a friend (non-PPC)</b></div>


<script type="text/javascript">
if ( /PPC/.test(navigator.appVersion)
&& document.getElementById
&& document.body.style ) {
document.getElementById('forPPC').style.display = '';
document.getElementById('forOther').style.display = 'none';
}
</script>
If all goes to plan, 'PPC' users with JavaScript enabled and honest
browsers will see the first A and maybe when they click on it their
e-mail client will start with your parameters. In any other case,
provided the style object & display property are supported, only the
second A will be shown.

--
Rob
Jul 23 '05 #4

P: n/a
Steve Horrillo wrote:
I can't figure out why this script won't insert the subject in the email [snip] if(isPPC()) {
document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?subject\=Take a [snip] }
else { document.write('<b>Send <A CLASS="contact" HREF=\"mailto:\?body\=Take [snip] }


The "else" part of the script doesn't try to set a subject line -- it only
tries to set a body.

So unless your browser contains "PPC" in its user-agent string (which I
think only some old versions of Internet Explorer for Mac do), you will
get an empty subject line.

It's a stupid script anyway. You should be doing this server-side.

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact

Jul 23 '05 #5

P: n/a
Any places to learn how to do it or pick up a script to do it the
"non-stupid" way?

Warmest regards,

Steve Horrillo
http://stephenhorrillo.com

*** Sent via Developersdex http://www.developersdex.com ***
Jul 23 '05 #6

P: n/a
The bottom line is, I need is a row of three buttons together
(preferably horizontally placed) linked to a "Send to a Friend, Bookmark
This Site, and Make Us Your Home Page script all in one. I've been
amaturishly trying to combine scripts to accomplish this. There must be
one like that already written but I can't it.

*** Sent via Developersdex http://www.developersdex.com ***
Jul 23 '05 #7

P: n/a
Lee
Stephen Horrillo said:

The bottom line is, I need is a row of three buttons together
(preferably horizontally placed) linked to a "Send to a Friend, Bookmark
This Site, and Make Us Your Home Page script all in one. I've been
amaturishly trying to combine scripts to accomplish this. There must be
one like that already written but I can't it.


Those are possibly the top three things that Javascript in web pages
should NOT try to do. Sending email should be done from the server.
Adding bookmarks and setting the home page should be done manually
by the user. User who doesn't know how to do them for themselves
are probably not capable of deciding whether it's a good idea to do
and are likely to be dissatisfied with the results.

Jul 23 '05 #8

P: n/a
"microchip" <ve***********@gmail.com> writes:
1. "<!----- Begin" is an invalid javascript function. It should have
the slashes in front of it (like the end).
He wrote "<!-- Begin". That is at least a valid HTML comment starter.

There is no reason to have "<!--" in the script element at all, so it
should not be commented, just removed.

If it is not removed, it must be assumed that the author intends it to
work as an HTML comment for browsers not understanding that the script
element content should not be rendered (which includes pretty much no
browser newer than Netscape 2). For that purpose, there should not be
anything outside of the HTML comment, so there should not be slashes
in front of it.
3.Towards the end you put "<\/a>" instead of </a>


That is correct. You should always escape the sequence "</" when
it occurs inside a script element. He should do the same for "</b>".

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #9

P: n/a
Steve Horrillo wrote:
I can't figure out why this script won't insert the subject in the email and
why can't I control the font and size being used? I'm not sure where to post
this. Let me know where if this is OT.
<SCRIPT LANGUAGE="JavaScript">

<snip>

What has this to do with Java whatsoever?

Possibly this?

http://smjg.port5.com/faqs/web/js/javaisnotjs.html

Stewart.

--
My e-mail is valid but not my primary mailbox. Please keep replies on
the 'group where everyone may benefit.
Jul 23 '05 #10

P: n/a
Dan
Lasse Reichstein Nielsen wrote:
3.Towards the end you put "<\/a>" instead of </a>


That is correct. You should always escape the sequence "</" when
it occurs inside a script element. He should do the same for "</b>".


This is one of three levels of escaping which need to be done here.
Also, to conform with the URI specs, all spaces in the "mailto:" URI
need to be escaped as %20, and there may be other characters which also
need to be escaped. Furthermore, under the HTML specs, any ampersands
in the URI need to be HTML-escaped as &amp;.

--
Dan

Jul 23 '05 #11

P: n/a
Lasse Reichstein Nielsen wrote:
<snip>
He wrote "<!-- Begin". That is at least a valid HTML comment starter.

There is no reason to have "<!--" in the script element at all, so it
should not be commented, just removed.

If it is not removed, it must be assumed that the author intends it to
work as an HTML comment for browsers not understanding that the script
element content should not be rendered (which includes pretty much no
browser newer than Netscape 2). For that purpose, there should not be
anything outside of the HTML comment, so there should not be slashes
in front of it.

<snip>
Corrent it should not have the '//' before the HTML comment if within
the SCRIPT tage, where it should have gone was before the 'Begin' to
prevent the JavaScript error, i.e.,

<script type="text/javascript">
<!-- //Begin ...

But again as been already noted the HTML comment to hide the script is
obsolete and just should be removed.

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
Jul 23 '05 #12

P: n/a
"Jonathan N. Little" <lw*****@centralva.net> writes:
<snip>
Corrent it should not have the '//' before the HTML comment if within
the SCRIPT tage, where it should have gone was before the 'Begin' to
prevent the JavaScript error, i.e.,

<script type="text/javascript">
<!-- //Begin ...


The "<--" would be an ECMAScript error too, in pure ECMA 262 ECMAScript,
so the "//" wouldn't make any difference there.

Browsers have extended ECMAScript with the "<--" syntax, and all the
browsers I have seen makes "<--" work just as "//", i.e., a comment
to the end of the line. In these browsers there is no need for "//"
either, so I don't believe it is ever needed.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #13

P: n/a
It was a typo. I fully understand the difference OK?

Warmest regards,

Steve Horrillo
http://stephenhorrillo.com

*** Sent via Developersdex http://www.developersdex.com ***
Jul 23 '05 #14

P: n/a
VK
The border line: mailto pseudo-protocol was used 100's and 1000's of
times to break the domain security over the last 15 years. It has all
imaginable security limitations. It may be the most up-to-date secure
protocol in the Interner :-)

You may want to read this ancient (relatively) thread:
<http://groups-beta.google.com/group/comp.lang.javascript/browse_frm/thread/2602a35ef4a14ac1/4d9084137519a2f2?q=mailto+group:comp.lang.javascri pt&rnum=3&hl=en#4d9084137519a2f2>

Jul 23 '05 #15

P: n/a
VK wrote:
The border line: mailto pseudo-protocol was used 100's and 1000's of
times to break the domain security over the last 15 years.


Rubbish. `mailto:' just does not work; it is not a security issue at all.
PointedEars
Jul 23 '05 #16

This discussion thread is closed

Replies have been disabled for this discussion.