代码之家  ›  专栏  ›  技术社区  ›  user1981275

GitHub项目最新版本的下载链接

  •  5
  • user1981275  · 技术社区  · 11 年前

    我正在尝试在我的网站上添加一个下载链接,指向最新的github项目版本。例如,链接 https://github.com/mongodb/mongo/archive/r3.0.0-rc7.zip 确实链接到最新版本(截至今天),但我不想在网站上硬编码版本号。

    我发现了几个关于这个问题的问题, answers 使用卷曲, 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还有更简单的方法?

    3 回复  |  直到 8 年前
        1
  •  10
  •   Gal Sisso    10 年前

    你正在加载一个html页面而不是他们的REST API https://api.github.com/repos/mongodb/mongo/tags

    您可能想在这里阅读更多关于githubapi的信息- 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>
    
        2
  •  2
  •   Xesau    10 年前

    对我来说,这很有效:

    <!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 这一切都应该奏效!

        3
  •  1
  •   Kenneth D White    10 年前
    <!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>
    

    这对我有用,希望有帮助!

    推荐文章