Javascript 如何在每种情况下将shortUrl用作href中的参数
我正在使用以下方法缩短一些URL:Javascript 如何在每种情况下将shortUrl用作href中的参数,javascript,jquery,Javascript,Jquery,我正在使用以下方法缩短一些URL: var opts = {login: myLogin, key: myKey}, bitly = new $.Bitly(opts); shorten = bitly.shorten(url, { onSuccess: function (shortUrl) { console.info(shortUrl); // this works fine // I got
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
shorten = bitly.shorten(url, {
onSuccess: function (shortUrl) {
console.info(shortUrl); // this works fine
// I got something like http://bit.ly/1DfLzsF
return shortUrl;
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
然后我试了一下:
console.log(shorten);
但是没有定义,为什么?如何分配var以便在其他地方使用
编辑:添加有关问题的额外信息
此信息将澄清我试图对我的问题做些什么,因此我有此代码,允许在点击事件时在社交网络中共享一些内容:
$('.share-item').click(function () {
var href = '',
url = base_url + 'main/show/' + imgUrl.split("/")[2].split(".")[0];
if ($(this).data('category') == 'share-facebook') {
href = 'https://www.facebook.com/sharer/sharer.php?u=' + url;
}
else if ($(this).data('category') == 'share-twitter') {
text = 'SomeText';
via = 'SomeText2';
href = 'http://www.twitter.com/share/?text=' + text + '&via=' + via + '&url=' + url;
}
else if ($(this).data('category') == 'share-mail') {
$('#finalImgModal').attr('src', imgUrl);
$('#image').val(imgUrl);
$('#mailModal').modal('show');
return false;
}
window.open(href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
return false;
});
正如您可能注意到的,url
在share facebook
和share twitter
中很常见。我需要缩短该URL,并在每个可能的选项上返回到href
。要缩短我使用的URL,请按如下所示:
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
console.info(shortUrl); // this works fine I got
// something like http://bit.ly/1DfLzsF
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
如何在
href
参数中使用shortUrl
?我是否需要在每个条件下重复代码,以便在onSuccess
事件中使用shorten()
方法执行操作?如何处理此问题?要分配给变量:
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
shorten = shortUrl;
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
方法shorten
不返回插件的源代码
改进的答案
根据您的edite帖子,以下是关于如何在短URL中使用它的正确答案:
$('.share-item').click(function () {
var href = '',
url = base_url + 'main/show/' + imgUrl.split("/")[2].split(".")[0],
opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
if ($(this).data('category') == 'share-facebook') {
href = 'https://www.facebook.com/sharer/sharer.php?u=' + shortUrl;
} else if ($(this).data('category') == 'share-twitter') {
text = 'SomeText';
via = 'SomeText2';
href = 'http://www.twitter.com/share/?text=' + text + '&via=' + via + '&url=' + shortUrl;
} else if ($(this).data('category') == 'share-mail') {
$('#finalImgModal').attr('src', imgUrl);
$('#image').val(imgUrl);
$('#mailModal').modal('show');
}
if ($(this).data('category') != 'share-mail')
window.open(href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
return false;
});
要分配给变量,请执行以下操作:
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
shorten = shortUrl;
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
方法shorten
不返回插件的源代码
改进的答案
根据您的edite帖子,以下是关于如何在短URL中使用它的正确答案:
$('.share-item').click(function () {
var href = '',
url = base_url + 'main/show/' + imgUrl.split("/")[2].split(".")[0],
opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
if ($(this).data('category') == 'share-facebook') {
href = 'https://www.facebook.com/sharer/sharer.php?u=' + shortUrl;
} else if ($(this).data('category') == 'share-twitter') {
text = 'SomeText';
via = 'SomeText2';
href = 'http://www.twitter.com/share/?text=' + text + '&via=' + via + '&url=' + shortUrl;
} else if ($(this).data('category') == 'share-mail') {
$('#finalImgModal').attr('src', imgUrl);
$('#image').val(imgUrl);
$('#mailModal').modal('show');
}
if ($(this).data('category') != 'share-mail')
window.open(href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
return false;
});
要分配给变量,请执行以下操作:
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
shorten = shortUrl;
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
方法shorten
不返回插件的源代码
改进的答案
根据您的edite帖子,以下是关于如何在短URL中使用它的正确答案:
$('.share-item').click(function () {
var href = '',
url = base_url + 'main/show/' + imgUrl.split("/")[2].split(".")[0],
opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
if ($(this).data('category') == 'share-facebook') {
href = 'https://www.facebook.com/sharer/sharer.php?u=' + shortUrl;
} else if ($(this).data('category') == 'share-twitter') {
text = 'SomeText';
via = 'SomeText2';
href = 'http://www.twitter.com/share/?text=' + text + '&via=' + via + '&url=' + shortUrl;
} else if ($(this).data('category') == 'share-mail') {
$('#finalImgModal').attr('src', imgUrl);
$('#image').val(imgUrl);
$('#mailModal').modal('show');
}
if ($(this).data('category') != 'share-mail')
window.open(href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
return false;
});
要分配给变量,请执行以下操作:
var opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
shorten = shortUrl;
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
方法shorten
不返回插件的源代码
改进的答案
根据您的edite帖子,以下是关于如何在短URL中使用它的正确答案:
$('.share-item').click(function () {
var href = '',
url = base_url + 'main/show/' + imgUrl.split("/")[2].split(".")[0],
opts = {login: myLogin, key: myKey},
bitly = new $.Bitly(opts);
bitly.shorten(url, {
onSuccess: function (shortUrl) {
if ($(this).data('category') == 'share-facebook') {
href = 'https://www.facebook.com/sharer/sharer.php?u=' + shortUrl;
} else if ($(this).data('category') == 'share-twitter') {
text = 'SomeText';
via = 'SomeText2';
href = 'http://www.twitter.com/share/?text=' + text + '&via=' + via + '&url=' + shortUrl;
} else if ($(this).data('category') == 'share-mail') {
$('#finalImgModal').attr('src', imgUrl);
$('#image').val(imgUrl);
$('#mailModal').modal('show');
}
if ($(this).data('category') != 'share-mail')
window.open(href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
},
onError: function (data) {
console.log(data.errorCode, data.errorMessage);
}
});
return false;
});
正如我在评论中所说的,你需要为缩短的URL找到未来。这里的未来是“用这个URL打开一个窗口”。下面是一个快速伪代码:
function openWindow(shortUrl) {
window.open(shortUrl, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
}
$('.share-item').click(function () {
if ($(this).data('category') == 'share-mail') {
...
return;
}
if (....twitter...) {
href = ...
} else if (....facebook....) {
href = ...
}
bitly.shorten(url, {
onSuccess: openWindow,
onError: function(err) {
...
}
});
}
(我将
openWindow
future设置为一个单独的函数,使其更为明显,但也可以将其保留在内联中。)正如我在评论中所说,您需要为缩短的URL确定未来。这里的未来是“用这个URL打开一个窗口”。下面是一个快速伪代码:
function openWindow(shortUrl) {
window.open(shortUrl, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
}
$('.share-item').click(function () {
if ($(this).data('category') == 'share-mail') {
...
return;
}
if (....twitter...) {
href = ...
} else if (....facebook....) {
href = ...
}
bitly.shorten(url, {
onSuccess: openWindow,
onError: function(err) {
...
}
});
}
(我将
openWindow
future设置为一个单独的函数,使其更为明显,但也可以将其保留在内联中。)正如我在评论中所说,您需要为缩短的URL确定未来。这里的未来是“用这个URL打开一个窗口”。下面是一个快速伪代码:
function openWindow(shortUrl) {
window.open(shortUrl, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
}
$('.share-item').click(function () {
if ($(this).data('category') == 'share-mail') {
...
return;
}
if (....twitter...) {
href = ...
} else if (....facebook....) {
href = ...
}
bitly.shorten(url, {
onSuccess: openWindow,
onError: function(err) {
...
}
});
}
(我将
openWindow
future设置为一个单独的函数,使其更为明显,但也可以将其保留在内联中。)正如我在评论中所说,您需要为缩短的URL确定未来。这里的未来是“用这个URL打开一个窗口”。下面是一个快速伪代码:
function openWindow(shortUrl) {
window.open(shortUrl, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
}
$('.share-item').click(function () {
if ($(this).data('category') == 'share-mail') {
...
return;
}
if (....twitter...) {
href = ...
} else if (....facebook....) {
href = ...
}
bitly.shorten(url, {
onSuccess: openWindow,
onError: function(err) {
...
}
});
}
(我将
openWindow
future设置为一个单独的函数,以使其更加明显,但它也可以保留为内联的。)因为最后一个console.log(shorten)甚至在执行onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置onSuccess
.putconsole.log(短URL)。还有一个更简单的说明,bit.shorten
不返回任何内容,期望变量shorten
包含除未定义之外的任何内容是不合理的。唯一有意义的地方是shortUrl
,它是一个完全不同的变量(仅在bitly.shorten
回调中可用)。returnshortURL
正在呼啸——没有人使用该函数返回的内容甚至在执行onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置onSuccess
.putconsole.log(短URL)。还有一个更简单的说明,bit.shorten
不返回任何内容,期望变量shorten
包含除未定义之外的任何内容是不合理的。唯一有意义的地方是shortUrl
,它是一个完全不同的变量(仅在bitly.shorten
回调中可用)。returnshortURL
正在呼啸——没有人使用该函数返回的内容甚至在执行onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置onSuccess
.putconsole.log(短URL)。还有一个更简单的说明,bit.shorten
不返回任何内容,期望变量shorten
包含除未定义之外的任何内容是不合理的。唯一有意义的地方是shortUrl
,它是一个完全不同的变量(仅在bitly.shorten
回调中可用)。returnshortURL
正在呼啸——没有人使用该函数返回的内容甚至在执行onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置onSuccess
.putconsole.log(短URL)。还有一个更简单的说明,bit.shorten
不返回任何内容,期望变量shorten
t是不合理的