Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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/2/jquery/88.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 如何在每种情况下将shortUrl用作href中的参数_Javascript_Jquery - Fatal编程技术网

Javascript 如何在每种情况下将shortUrl用作href中的参数

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

我正在使用以下方法缩短一些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 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
.put
console.log(短URL)。还有一个更简单的说明,
bit.shorten
不返回任何内容,期望变量
shorten
包含除
未定义之外的任何内容是不合理的。唯一有意义的地方是
shortUrl
,它是一个完全不同的变量(仅在
bitly.shorten
回调中可用)。
returnshortURL
正在呼啸——没有人使用该函数返回的内容onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置
onSuccess
.put
console.log(短URL)。还有一个更简单的说明,
bit.shorten
不返回任何内容,期望变量
shorten
包含除
未定义之外的任何内容是不合理的。唯一有意义的地方是
shortUrl
,它是一个完全不同的变量(仅在
bitly.shorten
回调中可用)。
returnshortURL
正在呼啸——没有人使用该函数返回的内容onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置
onSuccess
.put
console.log(短URL)。还有一个更简单的说明,
bit.shorten
不返回任何内容,期望变量
shorten
包含除
未定义之外的任何内容是不合理的。唯一有意义的地方是
shortUrl
,它是一个完全不同的变量(仅在
bitly.shorten
回调中可用)。
returnshortURL
正在呼啸——没有人使用该函数返回的内容onSuccess
之前执行code>completed@DhirajBodicherla然后呢?实现这一点的正确方法是什么?从内部调用其他位置
onSuccess
.put
console.log(短URL)。还有一个更简单的说明,
bit.shorten
不返回任何内容,期望变量
shorten
t是不合理的