我试图在我的服务器上使用以下代码来估计一些文本字段的长度,并在通过电子邮件发送它们之前可能会修剪它们......
String.prototype.visualLength = function()
{
var element = document.createElement("span");
element.css({
"visibility": "hidden",
"white-space": "nowrap",
"font-weight": "normal",
"font-size": "18px",
"line-height": "40px",
"font-family": "Helvetica, Arial, sans-serif",
"text-decoration": "none"
});
document.body.appendChild(element);
element.innerHTML = this;
return element.offsetWidth;
};
String.prototype.trimToPx = function(length)
{
var tmp = this;
var trimmed = this;
if (tmp.visualLength() > length)
{
trimmed += "...";
while (trimmed.visualLength() > length)
{
tmp = tmp.substring(0, tmp.length-1);
trimmed = tmp + "...";
}
};
return trimmed;
};
显然我收到一个错误,因为“文档”没有在服务器端定义。我添加了 Meteor 包htmljs
,domutils
希望他们能解决这个问题,但徒劳无功。而且我无法添加 Node.js 包jsdom
,因为显然它在部署的 Meteor 应用程序中不起作用。
知道如何实现我想要做的事情吗?