我想通过检测网址来自定义文本区域,然后将其转换为urlshortner并将其放在文本区域中。但是这个网址无法添加到我的textarea的问题。 我的脚本如下:
1:我从文本区域获得全文。
2:我测试字符串是不是网址
3:我打电话给ajax获取urlshortner
4:我将返回的url添加到数组中。
5:我把新文本放到我的textarea
但问题总是我在textarea中看到了初始文本。
这是我的代码
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。
感谢您的帮助