我的网站的所有页面都有mailto
按钮,我想在电子邮件正文中写出对该页面的引用。
在一个页面中,我可以
<a class="email" title="Email a friend" href="mailto:?subject=Interesting%20information&body=I thought you might find this information interesting:%20%0d%0ahttp://www.a.com/Home/SiteMap/tabid/589/Default.aspx">Email</a>
但是如何为所有页面制作这个通用的?
答案 0 :(得分:33)
这是纯粹的JavaScript解决方案:
<a class="email" title="Email a friend" href="#" onclick="javascript:window.location='mailto:?subject=Interesting information&body=I thought you might find this information interesting: ' + window.location;">Email</a>
答案 1 :(得分:9)
使用Javascript,您可以在UTF-8页面上使用encodeURIComponent()对主题和正文hfvalue进行utf-8%编码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<script>
function SendLinkByMail(href) {
var subject= "Interesting Information";
var body = "I thought you might find this information interesting:\r\n\r\n<";
body += window.location.href;
body += ">";
var uri = "mailto:?subject=";
uri += encodeURIComponent(subject);
uri += "&body=";
uri += encodeURIComponent(body);
window.open(uri);
}
</script>
</head>
<body>
<p><a href="javascript:(function()%7BSendLinkByMail()%3B%7D)()%3B">Email link to this page</a></p>
</body>
</html>
如果您正在执行此服务器端,则可以构建mailto链接并将其作为href属性值发出。然后,你根本不需要JS。
我假设ASP有一些URI编码函数,就像encodeURIComponent()。
您还可以查看我的mailto URI composer页面的来源作为另一个示例。
您还可以查看http://shadow2531.com/opera/testcases/mailto/mailto_uri_scheme_idea.html#send_link_by_mail和我的mailto URI syntax validator。
对于&lt;和&gt;我在上面的JS代码中包含了URI,参见&#34;附录C.在上下文中划分URI&#34; RFC3986的原因。
此外,您可以使用window.location或document.location.href或document.location代替window.location.href。我通常使用&#34; document.location&#34;。
为什么使用Javascript URI而不是onclick属性,请参阅this answer。
另请注意,在上面代码中的JS URI中,我将代码包装在匿名函数中。在这种情况下,这不是必需的,因为当您单击时,函数不会返回任何会更改文档的内容。但是,它只是一直这样做才能做好准备。
请参阅我的Javascript URI compose以帮助创建javascript URI。
答案 2 :(得分:3)
您可以在每个页面上放置JS,以便在文档加载时修改所有电子邮件链接的所有href。
我将使用jQuery作为示例代码,因为它更紧凑,但这也可以通过纯JS来实现:
$(document).ready(function(){
$(".email").attr("href", "mailto:?subject=Interesting%20information&body=I thought you might find this information interesting:%20%0d%0a"+window.location);
});
答案 3 :(得分:1)
您需要使用&body=
在电子邮件正文中包含字符串
这是一个通用的javascript函数
<script>
function emailFriend(){
var strrep ,ptitle = document.title;
strrep= ptitle.replace(/"/g,'%22');
strrep= ptitle.replace(/&/g,'%26');
var mailtourl = "mailto:?subject=Interesting%20information&body=I thought you might find this information interesting: "+encodeURIComponent(location.href);
location.href = mailtourl;
return false
}
</script>
<a href="javascript:;" onclick="emailFriend();return false">Email</a>