我需要编写一个按钮,该按钮在单击时在用户计算机上打开电子邮件。听起来很简单,但是我对此有很多麻烦,我正在使用Google站点,并且在HTML框中有代码允许使用CSS。我目前有一些打开电子邮件的按钮,但我无法在电子邮件中获得正常空间工作的空间。
我最初尝试制作一个表单按钮以提交一个网页,即在初始"?"之后的所有内容截止所有内容。在URL中。当我意识到自己在问什么时,很有意义。我添加了额外的隐藏元素,其中包含电子邮件中的标题和正文内容。通过使用此方法,我看不到一种允许空间放入URL的方法,而不会转换为其他东西。
下面的代码是当前的HTML,它以' '而不是'''''''''''和'%2520'而不是''。
产生电子邮件<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
max-width: 1000px;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
vertical-align: middle;
}
input {
width: 100%;
}
.hidden {
display:none;
}
</style>
<body>
<table>
<tbody>
<tr>
<th>Heading 1</th>
<th>Heading 2</th>
<th>Heading 3</th>
</tr>
<tr class="even">
<td>Example Text<td>
<td>Example Text<td>
<td><form action="mailto:example@email.com?"><input type="hidden" name="Subject" value="Title with lots of spaces"/><input type="hidden" name="body" value="Body with lots of spaces"/><input type="submit" value="Email" /></form></td>
</tr>
<tr>
<td>Example Text<td>
<td>Example Text<td>
<td><form action="mailto:example@email.com?"><input type="hidden" name="Subject" value="Title%20with%20lots%20of%20spaces"/><input type="hidden" name="body" value="Body%20with%20lots%20of%20spaces"/><input type="submit" value="Email" /></form></td>
</tr>
</tbody>
</table>
</body>
我在该示例中拥有的两个按钮应分别产生以下URL。
mailto:example@email.com?objective = title with lots of spaces&amp; body with lots of spaces
mailto:示例@email.com?objection = title%2520WITH%2520LOTS%2520OF%2520spaces&amp; hody%2520WITH%2520lots%2520OF%2520spaces
我意识到JavaScript可能会解决此问题,但是Google站点将HTML框的内容放入类似于IFRAMES的外壳中。这停止了从外壳内部打开的新标签,因此停止了电子邮件弹出窗口。
是否有一种方法可以使用我的解决方案表格提交空间,或者有一种简单的方法可以在Google网站上使用JavaScript打开电子邮件?
任何帮助都将不胜感激,我希望我要在平台上实现的目标。
我设法使它正常工作...
解决方案
我尝试使用JavaScript,但由于Google网站上的保护,这不允许我打开新标签。我找到了一篇文章,大多数人可能会发现有用:http://blog.ncce.org/2013/12/10/put-javascript-into-google-sites/通过使用此解决方案,您应该能够使用JavaScript导航到不同的网页,使用警报等。
我无法使用此方法。我正在为工作而这样做,而我的组织目前与Google有一份合同,该合同将所有对Google网站/Google Drive的访问限制在组织内的驱动器。因此,该站点无法访问我上传并产生错误的任何文件。
我的解决方案
我提出的解决方案以某种方式绕过了我对其他解决方案的问题,并允许我使用JavaScript将空间编码为%20(还允许我在加载后关闭额外的选项卡)。
>我使用Google App脚本显示一个HTML元素,该元素包含一个使用JavaScript打开电子邮件URL的按钮。您可以在此处使用该指南将Google App脚本添加到您的网站:https://support.google.com/sites/answer/1224162?hl = en
Google Apps脚本对我来说是新的,所以几个注释:
- 我花了很长时间才找到东西... cog->管理站点 ->应用程序脚本
- 要运行脚本保存您的文件,将作为新版本(文件 ->管理版本 ->新版本)保存,然后发布这些更改(发布 -> Deploy as Web App)
我的代码
code.gs:
function doGet() {
return HtmlService
.createTemplateFromFile('Index')
.evaluate();
}
index.html:
<!DOCTYPE html>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
max-width: 1000px;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
vertical-align: middle;
}
tr.even {
background-color: #dddddd;
}
button {
width: 100%;
}
</style>
<html>
<head>
<base target="_top">
</head>
<body>
<table>
<tbody>
<tr>
<th>Category</th>
<th>Descrition</th>
<th>Submit</th>
</tr>
<tr class="even">
<td>Example Text</td>
<td>Example Text</td>
<td><button onclick="var x = window.open('mailto:example@email.com?Subject=Title%20with%20lots%20of%20spaces&Body=Body%20with%20lots%20of%20spaces'); setTimeout(function () { x.close();}, 500);">Email</button></td>
</tr>
</tbody>
</table>
</body>
</html>
希望这对人们有所帮助。