4

当我在 Facebook 的“你在想什么?”中输入链接(视频、图片、URL 等)时 表单,它会自动检测链接并将其转换为缩略图,并在文本区域下方提供简要说明。任何人都可以为我提供见解或链接,让我继续如何实现这一目标?

4

3 回答 3

2

使用类似的东西

var input = document.getElementById("textarea");
input.addEventListener("change", checkLink(e));
input.addEventListener("blur", checkLink(e));

function checkText(text){
     var exp = "((ht|f)tp(s?))(:((\/\/)(?!\/)))(((w){3}\.)?)([a-zA-Z0-9\-_]+(\.(com|edu|gov|int|mil|net|org|biz|info|name|pro|museum|co\.uk)))(\/(?!\/))(([a-zA-Z0-9\-_\/]*)?)([a-zA-Z0-9])+\.((jpg|jpeg|gif|png)(?!(\w|\W)))";
     return text.match(exp);
}
function checkLink(e){
     //here you would want to use a regular expression and check for http:

     var regularExpression = !!checkText(e.target.innerHTML); // returns true or false
     if(regularExpression){
       e.target.innerHTML += "<a href='#'><img src="" alt="" /></a>";
     }
}

正则表达式的好资源 - http://regexlib.com/Search.aspx?k=image&c=-1&m=-1&ps=20

于 2012-09-06T15:10:51.057 回答
2

textarea 更改事件附加了一个 javascript。javascript检测textarea的内容是否为url,如果是,则javascript调用访问该url的webservice来查找页面标题、页面描述等(或开放图形协议元标记),如果是找到它们返回给适当组织的 javascript 的每个标签。

Facebook 也会缓存这些内容,如果另一个用户发布了相同的 url,他会使用缓存值而不是重新访问该页面。

开放图协议元标记:

http://developers.facebook.com/docs/opengraphprotocol/
于 2012-09-06T14:51:25.527 回答
0

警告 - 必须离开工作所以不检查正则表达式。

获取链接值并通过正则表达式运行它,该表达式查找^http:...[^\s]^https:...[^\s]返回这些值。

然后,将这些 URL 传递给您的服务器,让您的服务器检索文档并返回一个代码段供您放入文档。您必须拥有自己的服务器来提供帮助,因为 Javascript 本身就有安全限制。谷歌same origin policy了解更多信息。

于 2012-09-06T14:53:18.160 回答