Twitter文本js,不根据包含带#的URL的文本计算长度
Twitter text js , not calculating the length from text which contains urls with #!
我使用Twitter文本js计算URL包含#!的文本长度!。例如:
"Some text http://domain.com#!/path/p/56319216 #tag1 #tag2".
在firefox中,调试器在twitter文本js 中的这一行生成错误
twttr.txt.regexen.extractUrl.exec(text);
没有记录任何特定的错误,而是我的页面冻结并提醒我停止脚本,请帮助。
2012-05-31在github存储库上合并的拉取请求引入了twttr.txt.getTweetLength(文本,选项)函数,该函数考虑了t.co URL,定义如下:
twttr.txt.getTweetLength = function(text, options) {
if (!options) {
options = {
short_url_length: 22,
short_url_length_https: 23
};
}
var textLength = text.length;
var urlsWithIndices = twttr.txt.extractUrlsWithIndices(text);
for (var i = 0; i < urlsWithIndices.length; i++) {
// Subtract the length of the original URL
textLength += urlsWithIndices[i].indices[0] -urlsWithIndices[i].indices[1];
// Add 21 characters for URL starting with https://
// Otherwise add 20 characters
if (urlsWithIndices[i].url.toLowerCase().match(/^https:'/'//)) {
textLength += options.short_url_length_https;
} else {
textLength += options.short_url_length;
}
}
return textLength;
};
所以你的功能将变成:
function charactersleft(tweet) {
return 140 - twttr.txt.getTweetLength(tweet);
}
此外,关于t.co的最佳实践,我们应该从twitter中检索short_url_length和short_url_length_https值,并将它们作为twttr.txt.getTweetLength函数中的选项参数传递:
每天在应用程序中请求一次GET帮助/配置,并将"short_url_length"(t.co当前的最大长度值)缓存24小时。缓存"short_url_length_https"(基于https的t.co链接的最大长度),并将其用作基于https的url的长度。特别是知道t.courls长度的一些更改将在2013-02-20生效,如twitter开发者博客
相关文章:
- 将纯文本URL转换为可单击链接
- 通过 jQuery Find and Replace 将文本 URL 与 标记包装在一起
- JavaScript-按位置查找URL中的文本
- 替换“;var url”;使用文本框输入
- 为什么这个使用谷歌URL的Javascript文本到语音不起作用
- 使用jQuery在url中附加(添加)文本
- 如何在文本框中验证客户端的youtube url
- 正在检查url的页面源中是否存在文本
- 将URL的文本列表转换为可点击的HTML链接
- 从JavaScript中的文本URL返回可点击的URL
- 使用PHP运行Javascript后,获取URL的内容(文本)
- 通过 JavaScript 和正则表达式将图像 URL 替换为文本 URL
- JS:将纯文本 URL(在 blob 中)转换为链接或 iframe
- 如何检测和转换来自纯文本URL的URL图像和视频
- 如何在锚标记中自动换行文本 URL
- 获取 DIV 中的文本/URL
- 使用javascript在html中制作一个随机的图像/文本/url元素
- 大列表随机文本/URL - Opi
- 脚本标记中的Paperclip图像集显示的是图像文本url,而不是图像-expandablebanners.js
- 如何查找和替换文本url与链接在jquery