2012-03-06 35 views
3

我正在用WebView构建应用程序。你并不需要知道,但这是我需要回答这个问题的原因,没有其他方法。带JavaScript的Email Textarea URL代码

有没有办法在textarea对象所在的网页上放置某种脚本,然后在URL中输入某种JavaScript代码后,它将打开默认的邮件程序, textarea作为消息的正文部分。

混淆,我知道,但读了几次。

(注:当我说弹出默认的邮件程序,我的意思是一样的相同方法的mailto,当它在默认的邮件应用程序打开)

+1

您希望您的用户在浏览器的地址栏中输入JavaScript代码以打开其邮件程序? ...为什么不使用'mailto'链接?或者让他们使用他们的GUI(或通过他们通常会这样做的其他方式)打开他们的电子邮件程序? – 2012-03-06 22:50:02

回答

0

随着假设textarea有一个id="ta1",这是你在找什么输入到地址栏:

javascript:location.href="mailto:[email protected]?body="+document.getElementById("ta1").value; 

编辑:

得到相同的动作进行按钮点击:

<input type="button" onclick="location.href=&quot;mailto:[email protected]?body=&quot;+document.getElementById(&quot;ta1&quot;).value;" value="Send"> 

也适用于Android股票浏览器

+0

正是我在找的东西,谢谢:) – 2012-03-07 01:31:27

+0

很高兴帮助!请记住,尽管最低限度地使用这种用户输入,并且绝对不会在任何面向公众的用户界面上使用。 – bPratik 2012-03-07 01:35:28

+1

确保在将其添加到URL之前从textarea中跳出该值:'... + encodeURI(document.getElementById(“ta1”)。value)' – djd 2012-03-07 02:35:10

1

一个mailto链接可以包括默认的主题/消息在其中使用URL参数。

<a href="mailto:[email protected]?subject=My%20Subject&body=My%20message"> 

所以,最好的方式来实现你想要的是建立动态的基础上,<textarea>输入元素的值的URL。然后,您可以将URL分配给锚标签的href属性,或直接将其分配给window.location

不幸的是,它看起来不像<form action="mailto:…">的作品,所以你将需要一些JS。

0

只需绑定一个监听器onkeyuponchange事件运行,创建一种权利mailto:链接的功能<textarea>

$("#sendMail").on("keyup change", function(){ 
    $(this).attr("href", "mailto:......"); 
}); 

您可以将特定的RECEIPIENT,主题和正文是这样的:

<a id="sendMail" href="mailto:[email protected]?subject=abcdef&body=bodyMessage">Send</a> 

然后使用一些CSS样式的链接看起来像一个按钮。例如。

#sendMail { display: block; background: #EEE; border: 1px solid #CCC; color: #000; }