Jquery 就像Facebook!获取问题:是否包含按键(e)上textarea的值&引用;“演示”;

Jquery 就像Facebook!获取问题:是否包含按键(e)上textarea的值&引用;“演示”;,jquery,jquery-selectors,Jquery,Jquery Selectors,如果在键入的最后一个单词中找到url,我尝试在空格键上触发一个事件,如果有结果,则终止该事件,因此如果用户继续键入。。。该函数不会一直向服务器发送请求。我累了,希望这有意义。。。基本上,当你提交一篇文章并输入一个以http:///开头的url时,我试图实现facebook的功能。我让它100%完美地工作。。。您可以键入和键入url,当以http://开头输入url时,它会ping服务器、获取元数据、页面中的图像等。但当用户继续键入时,该函数似乎陷入循环并冻结,因为它仍在尝试查找url 下面是代码

如果在键入的最后一个单词中找到url,我尝试在空格键上触发一个事件,如果有结果,则终止该事件,因此如果用户继续键入。。。该函数不会一直向服务器发送请求。我累了,希望这有意义。。。基本上,当你提交一篇文章并输入一个以http:///开头的url时,我试图实现facebook的功能。我让它100%完美地工作。。。您可以键入和键入url,当以http://开头输入url时,它会ping服务器、获取元数据、页面中的图像等。但当用户继续键入时,该函数似乎陷入循环并冻结,因为它仍在尝试查找url

下面是代码:

$(document).keypress(function(e){
$('#example').keyup(function() { 
if(e.which == 32) {
var body = $('#example').attr('value');
var body = encodeURIComponent(body);
$.ajax({
type: "GET",
url: "get_url.php",
data: "entry="+body,
cache: false,
success: function(html) {
$("#new_url").html(html);
}
});
return false;
}
});
});
我知道这很乱。。。还在学习jQuery


谢谢你的帮助!我想在用户键入以http://、www或http://w开头的url时扫描textarea输入。使用jquery,当找到时触发ajax请求并停止函数进一步查找URL。。。但我目前正在使用php中的正则表达式查找url、获取数据并返回它

我可能不会将keypress事件用于这样的事情。以下是我的想法:

  • 在上使用
    focus()
    事件 文本框来触发
    setInterval(…)
    callback
  • 在被调用的函数中,使用正则表达式 扫描文本框的内容 查找URL
  • 如果找到有效的URL,请调用
    clearInterval()
    停止 扫描,同时执行AJAX 请求获取有关URL的信息
  • 当AJAX请求返回时, 更新文本框的内容, 并恢复回调,使其保持 扫描
  • 在 textbox,设置终止 永久性回调(即不会 当当前AJAX 请求返回)--没有必要 如果用户未键入,则扫描 任何事

  • 我会尽快发布一些代码,但希望这能帮你睡一觉。也许,你应该先睡一会儿,然后再回到这个问题上来?

    我可能不会用按键事件来做这样的事情。以下是我的想法:

  • 在上使用
    focus()
    事件 文本框来触发
    setInterval(…)
    callback
  • 在被调用的函数中,使用正则表达式 扫描文本框的内容 查找URL
  • 如果找到有效的URL,请调用
    clearInterval()
    停止 扫描,同时执行AJAX 请求获取有关URL的信息
  • 当AJAX请求返回时, 更新文本框的内容, 并恢复回调,使其保持 扫描
  • 在 textbox,设置终止 永久性回调(即不会 当当前AJAX 请求返回)--没有必要 如果用户未键入,则扫描 任何事
  • 我会尽快发布一些代码,但希望这能帮你睡一觉。也许,你应该先睡一会儿,然后再回到这个问题上来?

    试试这个:

    $(document).ready(function() {    
        $('#example').keyup(function(e) {                   
            if(e.which == 32) {                     
                var body = $('#example').attr('value');                     
                body = encodeURIComponent(body);                        
                $.ajax({
                    type: "GET",
                    url: "get_url.php",
                    data: "entry="+body,
                    cache: false,
                    success: function(html) {
                        $("#new_url").html(html);
                    }
                });
                return false;
            }
        });
    });         
    
    它不会在整个身体上的每个按键上触发。 此外,我只声明了一次主体变量

    在本地测试,不再锁定,但不会得到任何有用的响应,因为get_url.php似乎不会返回任何内容。

    尝试以下方法:

    $(document).ready(function() {    
        $('#example').keyup(function(e) {                   
            if(e.which == 32) {                     
                var body = $('#example').attr('value');                     
                body = encodeURIComponent(body);                        
                $.ajax({
                    type: "GET",
                    url: "get_url.php",
                    data: "entry="+body,
                    cache: false,
                    success: function(html) {
                        $("#new_url").html(html);
                    }
                });
                return false;
            }
        });
    });         
    
    它不会在整个身体上的每个按键上触发。 此外,我只声明了一次主体变量



    在本地测试,不再锁定,但不会得到任何有用的响应,因为get_url.php似乎不会返回任何内容。

    有时它会像godaddy.com一样失败,只返回url、title和description标签。。。不知何故,godaddy.com阻止了简单的php页面刮取函数还是什么?但是如果你发布http://godaddy.com,facebook也无法获取图像。这是我正在处理的演示页面-->我不是JS英雄,但我马上注意到的一点是,你定义了两次var主体。这不应该是var body=thatValue;主体=部件(主体);非常感谢。我没注意到!基本上,我想在找到http://match/result后终止keypress-even/函数。。。我尝试过做一点,但没有成功-->if(e.which==32&&&$(“#示例”).attr('val').indexOf('http://').last){有时它会像godaddy.com上那样失败,只返回url、title和description标签……不知何故,godaddy.com会阻止简单的php页面刮取功能或其他什么?但是如果你发布http://godaddy.com,facebook也无法获取图像。这是我正在处理的演示页面-->我不是JS英雄,但我马上注意到的一点是没有您应该定义两次var body。这不应该是var body=thatValue;body=encodeURIComponent(body);谢谢您…我没有注意到!基本上,我想在找到http://match/result后杀死keypress even/函数…我尝试了一点,但没有成功-->if(e.which==32&$('#example').attr('val').indexOf('http://').last){没有想到。实际上可能是更好的方法。非常感谢……我甚至还没有接触到绑定事件/间隔/回调的内容……jQuery非常广泛!是的……这是一个好主意……我的另一只眼睛开始变得沉重了!很难用一只畸形的眼睛编程!:-)所以我喜欢你发布的新功能…它的效果更快…在找到并返回url上的数据后,仍然会出现空格键滞后现象?wierd!这工作得更好…如果你继续键入,空格键滞后的速度不会像以前那么慢…嗯…想知道facebook是怎么做到的?:-)facebook是“jQuery”太受驱动了…太简单了,但是太受欢迎了!没想到这一点。实际上可能是更好的方法。非常感谢…我甚至还没有接触到绑定事件/间隔/回调的内容…jQuery非常广泛!是的…这是个好主意…我的另一只眼睛开始变得沉重了!H