我正在开发一个基于Web的应用程序,允许用户收集某些信息。
在最后一页显示收集数据的分析。这部分是通过数字和通过更改显示数字的字段的背景颜色来完成的。
在用手机查看分析后,用户应该在表格中输入他的电子邮件地址和姓名。点击"发送"按钮,我的目标是通过电子邮件向用户发送pdf(或包含html和css代码的任何类型的文档(因为颜色))。为了使这更清楚,用户应该重新获得应用程序最后一页的副本。必须考虑用户正在使用他的手机,但他收到的文件应格式化为在计算机上查看。
目前我使用printDiv()函数打开打印菜单,但在预览中只显示html(没有css)。
因此,我的问题是:
如何将css包含在预览中? css是在javascript函数中确定的(我没有使用单独的样式表,因为这是我需要的唯一的css代码)。
$('#field').val(fieldValue);
{if (fieldValue> 85){
$(this).css('background-color', '#008000');
}
else if (fieldValue>= 50 ){
$(this).css('background-color', '#FFA500');
}
else
$(this).css('background-color', '#FF0000');
}
)
;}
如何通过电子邮件发送文件?我目前的做法是否合适?我不确定这一点,因为用户将使用该应用程序专门使用他们的手机,许多用户不支持print语句。我的printDiv()函数如下所示:
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
w=window.open();
w.document.write(printContents);
w.print();
w.close();
}
此后如何继续?我想我必须将pdf保存到服务器,从那里发送,然后删除文件。它是否正确?我很高兴任何建议。如果可能的话,我计划使用python执行以下步骤。
我希望我已经准确地描述了我的问题,并感谢我们尽一切努力帮助我!
答案 0 :(得分:0)
JavaScript不适用于大多数电子邮件客户端。为了使css工作,需要将其从脚本中拉出并保持静态。
有许多电子邮件客户端以不同的方式使用CSS。例如,如果您想在H1中设置样式,则可以通过三种方式设置样式:
内联样式(最有效):
<h1 style="color: #ff0000;">Hello</h1>
内部样式表(效力有限):
<head>
<style>
h1 {color: #ff0000;}
</style>
</head>
外部样式表(效果非常有限):
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
某些电子邮件客户端无法使用外部样式表。有些人会将自己的样式替换为内部样式表,而许多样式将完全阻止外部样式表。
如果您可以内联您的值,您应该能够发送一个样式的HTML电子邮件。