サーバーで次のコードを使用して、一部のテキストフィールドの長さを推定し、電子メールで送信する前にそれらをトリミングしようとしています...
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アプリでは機能しないため、追加できません。
私がやろうとしていることを達成する方法はありますか?