变量

时间:2016-06-30 14:06:30

标签: javascript jquery cookies

我想设置Cookie捕获页面访问,然后让用户选择单击按钮并通过电子邮件发送cookie的内容。到目前为止,我有这个:

$( document ).ready(function() {
$('#testButton').click(function(event){
 event.preventDefault();
var oldPathName = $.cookie("currentPath");
var newPathName = window.location.pathname;
var pathCombined = oldPathName+ String.fromCharCode(13)+newPathName;
var date = new Date();
var minutes = 30;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie("currentPath", pathCombined, { expires: date });
alert(pathCombined);
 var email = 'me@somewhere.com';
    var subject = 'History';    
    window.location = 'mailto:' + email + '?subject=' + subject + '&body=' +   pathCombined;
});
});

到目前为止,这只是一个测试。单击#testButton首先会弹出包含cookie内容的警报,然后打开包含邮件正文中cookie内容的电子邮件。

我遇到的唯一问题是在电子邮件中插入换行符/回车符。我已经弄清楚如何在警报的路径之间获得换行符,但它在电子邮件文本中不起作用。

例如,如果我按以下顺序访问两个页面:

www.example.com/xxx/yyy/zzz
www.example.com/xxx/yyy/qqq

然后上面代码触发的警报显示:

/xxx/yyy/zzz
/xxx/yyy/qqq

但电子邮件的正文写成:

/xxx/yyy/zzz/xxx/yyy/qqq

格式化电子邮件正文中的中断显然需要采用不同的方式。我尝试用String.fromCharCode(13)替换%0D%0A但它打破了JQuery。

1 个答案:

答案 0 :(得分:0)

您只需要对文字进行编码。

var pathCombined = oldPathName+ '\n' +newPathName;

window.location = 'mailto:' 
+ encodeURIComponent(email)
+ '?subject='
+ encodeURIComponent(subject) 
+ '&body=' 
+ encodeURIComponent(pathCombined);