javascript - 如何保存由javascript代码生成的html以便通过电子邮件发送?

标签 javascript c# html angularjs html-email

我想将我编写并生成(静态)html 页面(主要用于呈现数据表)的 C# API 转换为使用 angularjs。目标是更好地解耦数据和 html,允许交互性(例如,按列排序)/重复使用数据,这超出了静态 html 页面所能提供的范围。

现在的问题是,一旦我使用 JS 生成我的页面的一部分,我就不能再通过电子邮件按原样发送 html 文档,因为 JS 不会从电子邮件客户端执行。然而,这是我的 API 的一个有用功能。

有解决办法吗?

我想我曾经听说过一个虚拟浏览器(在 node 中?),它可以执行所有的 javascript(没有 GUI),然后将 html 转储到一个文件中。

否则,我能想到的唯一解决方案是让 C# 生成表格,在 html 中对值进行硬编码(目前的情况),并让 angularjs 仍然执行所有 json 后处理以允许用户与数据交互。令人讨厌的是,它需要在 C# 和 JS 中复制一些表构造逻辑,这不是很好。

最佳答案

如果你想发送电子邮件,那么实现一个service在 Angular 中调用一些服务器端函数来发送电子邮件。数据应该作为某种 View 模型传递。在 ASP.NET 中,此服务器端功能通常通过 Web API 或通用处理程序 (.ashx) 公开。

如果您希望用户能够直接从页面下载文件,请查看How to trigger a file download when clicking an html button or javascript。 .

应该注意的是,直接使用用于网页的 HTML 通常不是将其包含在电子邮件中的好主意。电子邮件客户端中的 HTML 解析器差异很大,您应该只使用一小部分 HTML 功能来确保兼容性。用于浏览器的 HTML 还经常包含不适用于电子邮件的额外内容(例如导航菜单)。

关于javascript - 如何保存由javascript代码生成的html以便通过电子邮件发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387910/

相关文章:

javascript - 使用 JavaScript 在我的 html 页面中放大图像

javascript - RxJS:跳过条件mergeMap

javascript - 需要一个 ExtJS 错误解决方法

javascript - _.each 在循环嵌套对象时产生重复

c# - 如何使用 NUnit 测试与数据库相关的代码?

javascript - 如何使用css使字体比900更厚

javascript - 纯 JavaScript 中的 Zendesk 注销功能

c# - 从其他命名空间访问变量

c# - ToListAsync() 与 AsDocumentQuery()

javascript - AngularJS ng-show 不工作,我检查了语法但它不工作