0

** 编辑:谢谢,Shivan Raptor!我有点忘了“encodeURIcomponent()”!**

出于某种原因,我正在制作一个 Javascript 小书签,可以快速通过电子邮件发送我的两封电子邮件中的一封。(我将只显示缩进的 JS 以使其更容易,因为我可以转换它。)它为主题和正文使用了几个变量,这些变量由提示输入。

var address = confirm("School email?");

        var sub = prompt("What is the subject?");

        var bod = prompt("What would you like the message to read?");

        if(address == true) {
            window.location.assign("mailto:areiter@hightechhigh.org?Subject=sub&body=bod");
            alert("Message sent to 'areiter@hightechhigh.org'.");
        }
        else {
            window.location.assign("mailto:burningphantom13@gmail.com?Subject=sub&body=bod");
            alert("Message sent to 'areiter@hightechhigh.org'.");
        }

唯一的问题是变量“sub”和“bod”分别是主语和正文的样子。因此,代码打开 Outlook,并准备好发送电子邮件,正文中包含主题“sub”和“bod”。有没有办法让 Javascript 代码的主题和主体成为变量的值?请记住,它将是一个书签,因此不能有任何 HTML。

4

2 回答 2

4

您可以更换:

window.location.assign("mailto:areiter@hightechhigh.org?Subject=sub&body=bod");

和:

window.location.assign("mailto:areiter@hightechhigh.org?Subject=" + encodeURIComponent(sub) + "&body=" + encodeURIComponent(bod));

这样变量subbod将根据用户输入是动态的。encodeURIComponent对参数进行编码,所以如果用户输入特殊字符,代码不会崩溃。

于 2013-04-17T02:24:14.910 回答
-1

更改代码如下,

    var address = confirm("School email?");

    var sub = prompt("What is the subject?");

    var bod = prompt("What would you like the message to read?");

    if(address == true) {
        window.location.assign("mailto:areiter@hightechhigh.org?Subject=" + sub + "&body=" + bod);
        alert("Message sent to 'areiter@hightechhigh.org'.");
    }
    else {
        window.location.assign("mailto:burningphantom13@gmail.com?Subject=" + sub + "&body=" + bod);
        alert("Message sent to 'areiter@hightechhigh.org'.");
    }

希望这会奏效:)

于 2013-04-17T02:24:27.580 回答