我正在尝试向我的网站添加一个项目最新github版本的下载链接。例如,链接https://github.com/mongodb/mongo/archive/r3.0.0-rc7.zip确实链接到最新版本(截至今天),但我不想在网站上对版本号进行硬编码。
我发现了一些关于此问题的问题,answers使用了curl,ajax或php。
我使用ajax尝试使用github发布API的解决方案:
<!DOCTYPE html>
<HTML> <BODY>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
GetLatestReleaseInfo();
});
function GetLatestReleaseInfo() {
$.getJSON("https://github.com/mongodb/mongo/releases").done(function (json) {
var release = json[0];
var asset = release.assets[0];
var downloadURL = "https://github.com/mongodb/mongo/releases" + release.tag_name + "/" + asset.name;
$(".mongodb-download").attr("href", downloadURL);
});
}
</script>
<a href="GetLatestReleaseInfo();">Link</a>
<a href="" onclick="location.href=this.href+downloadURL;return false;">Link2</a>
<a href="" onclick="location.href=this.href+mongodb-download;return false;">Link3</a>
</BODY>
</HTML>
但我无法正确调用javascript函数,因为它似乎在我上面的尝试(Link,Link2和Link3)。我对javascript或ajax不太熟悉,所以我很感激任何帮助;也许没有Ajax有一种更简单的方法?
答案 0 :(得分:9)
您正在加载一个html页面而不是他们的REST API。获取标记的正确网址是https://api.github.com/repos/mongodb/mongo/tags
您可能希望在此处阅读有关github api的更多信息 - https://developer.github.com/v3/repos/
您的HTML可能如下所示:
<!DOCTYPE html>
<HTML> <BODY>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
GetLatestReleaseInfo();
});
function GetLatestReleaseInfo() {
$.getJSON("https://api.github.com/repos/mongodb/mongo/tags").done(function (json) {
var release = json[0];
var downloadURL = release.zipball_url;
$("#mongodb-download").attr("href", downloadURL);
});
}
</script>
<a id='mongodb-download' href="">Download latest mongo</a>
</BODY>
</HTML>
答案 1 :(得分:2)
对我来说,这很有效:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready (function () {
$.getJSON("https://api.github.com/repos/mongodb/mongo/tags").done(function (data) {
$ ('#mongodb-download').attr ('href', data[0].zipball_url);
})
});
</script>
</head>
<body>
<a id="mongodb-download">Download the latest version of MongoDB</a>
</body>
</html>
如果您遇到未定义的问题,只需将$
更改为jQuery
,这一切都可以正常工作!
答案 2 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
jQuery(document).ready (function () {
jQuery.getJSON("https://api.github.com/repos/mongodb/mongo/tags").done(function (data) {
jQuery('#mongodb-download').attr ('href', data[0].zipball_url);
})
});
</script>
</head>
<body>
<a id="mongodb-download">Download the latest version of MongoDB</a>
</body>
</html>
这对我有用,希望有所帮助!