Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测与诊断;以'的形式显示链接;s文本区_Javascript_Ruby On Rails 3_Forms - Fatal编程技术网

Javascript 检测与诊断;以'的形式显示链接;s文本区

Javascript 检测与诊断;以'的形式显示链接;s文本区,javascript,ruby-on-rails-3,forms,Javascript,Ruby On Rails 3,Forms,当我在Facebook的“What's your mind?”表单中输入一个链接(视频、图像、URL等)时,它会自动检测该链接,并将其转换为缩略图,在文本区域下方有一个简短的描述。有人能给我提供见解或链接,让我了解如何实现这一点吗?textarea更改事件附带了一个javascript。javascript检测textarea的内容是否是url,如果是,javascript调用Web服务访问url,查找页面标题、页面描述等(或open graph protocol meta标记),如果找到每个标

当我在Facebook的“What's your mind?”表单中输入一个链接(视频、图像、URL等)时,它会自动检测该链接,并将其转换为缩略图,在文本区域下方有一个简短的描述。有人能给我提供见解或链接,让我了解如何实现这一点吗?

textarea更改事件附带了一个javascript。javascript检测textarea的内容是否是url,如果是,javascript调用Web服务访问url,查找页面标题、页面描述等(或open graph protocol meta标记),如果找到每个标记,这些标记将返回给javascript,然后由javascript进行适当组织

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

开放图形协议元标记:

http://developers.facebook.com/docs/opengraphprotocol/
警告--必须离开工作区,以便不检查正则表达式

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

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

使用类似

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>";
     }
}
var input=document.getElementById(“textarea”);
输入。addEventListener(“更改”,复选链接(e));
input.addEventListener(“模糊”,复选链接(e));
函数检查文本(文本){
((w)3}.)(((w)3{{{3}.)((((w)3}.)(((a-a-zA-zA-zA-zA-zA-Z0-Z0-5-9-10-10-10-10 10-10-10-10-10)除了(((a-a-zA-zA-zA-Z0-9-9-9-9-UUUU10)++(((((a-a-zA-zA-zA-zA-zA-zA-zA-zA-zA-zA-zA-zA-Z0-Z0-Z0--Z0-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-UUUU10-9-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-9-10-9| gif | png)(?!(\w |\w))”;
返回text.match(exp);
}
功能检查链接(e){
//在这里,您需要使用正则表达式并检查http:
var regularExpression=!!checkText(e.target.innerHTML);//返回true或false
if(正则表达式){
e、 target.innerHTML+=“”;
}
}

正则表达式的好资源-

制作一个广泛的程序,检测链接的域,然后从所述链接检索有意义的信息,然后以一致的显示方式显示。换句话说,在这一点上,您是独立的,因为这不是一段简单的代码。