Ajax返回响应,但我无法将其添加到我的textarea

时间:2016-12-28 09:47:46

标签: javascript jquery ajax url-shortener

我想通过检测网址来自定义文本区域,然后将其转换为urlshortner并将其放在文本区域中。但是这个网址无法添加到我的textarea的问题。 我的脚本如下:

1:我从文本区域获得全文。

2:我测试字符串是不是网址

3:我打电话给ajax获取urlshortner

4:我将返回的url添加到数组中。

5:我把新文本放到我的textarea

但问题总是我在textarea中看到了初始文本。

text area before call ajax

这是我的代码

function shortner(tex){
    var c="";
    var msgtext="";
    var urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    var MsgStr = $("#Pushtype_message").val();
    var Arr = tex.split(" ");
    //  $("#Pushtype_message").val("");
    var final=0;
    var pushs=[];
    var n=0;
    while (n < Arr.length) {
        txtStr = Arr[n];
        var urltest=urlRegex.test(txtStr);
        if(urltest)
        {
            var bit_url="";
            var url=txtStr;
            var username="o_1i42ajamkg"; // bit.ly username
            var key="R_359b9c59*************";
            $.ajax({
                url:"http://api.bit.ly/v3/shorten",
                data:{longUrl:url, apiKey:key, login:username},
                dataType:"jsonp",
                async: false,
                success:function(v)
                {
                    if(v.data.url != null){
                        bitly = v.data.url;
                        pushs.push(bitly);
                        n++;
                        console.log(pushs);
                    }
                }
            });
        }else{
            pushs.push(txtStr);
            n++;
            //var txt= $("#Pushtype_message").val();
        }
    }
    return pushs;
}

$("#urlr").change(function()
{
    var text=  $("#Pushtype_message").val();
    points=shortner(text);
    /// console.log(points);
    $("#Pushtype_message").val(points.join(' '));
});

当我执行我的脚本时,我得到了以下结果

Array [ "jkhfsdkfh", "https://www.google.Fr", "sdfhksdhfsdf", "http://bit.******" ]

正如您在此处看到的那样,https://www.google.fr仍在文本中,但我希望将其替换为由bitly返回的url。

感谢您的帮助

0 个答案:

没有答案