首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得javascript菜单中动态生成的所有URL?

如何获得javascript菜单中动态生成的所有URL?
EN

Stack Overflow用户
提问于 2014-07-04 14:13:05
回答 2查看 64关注 0票数 0

我需要从本站库下载所有的图片,但我不知道如何获取它们的URL,也不知道这些URL存储在哪里。

我试着用一些程序下载整个网站,但他们似乎都没有下载菜单。希望有人知道如何做到这一点,而不必手动一个一个。

在这里,我可以看到生成URL的代码:

代码语言:javascript
复制
<script type="text/javascript">
$(function(){
    $(".text-frame").not(".default-frame").hide();
    $('#menubar .button').hover(function(){
        $(this).toggleClass("button-hover");
    });
    $('#menubar .button').click(function(){
        $(".text-frame").hide();
        $("#image-viewer").hide();
        $(".button").removeClass("button-active");
        var showTextframe = $(this).attr("rel");
        $("#" + showTextframe).show();
        $(this).addClass("button-active");
    });

    function showImages (imgLinks){
        for (var i = 0; i < imgLinks.length; i++){
            //$("#image-box").append($('<img>').attr('src', imgLinks[i]));
            var $imgSelector = $('<a>'+ (i + 1) +'</a>')
                .data('imglink',imgLinks[i])
                .click(function(){
                    $("#image-box").find("img").attr('src', $(this).data('imglink'));
                    $("#image-links").find('a').removeClass('active');
                    $(this).addClass('active');
                    //alert ("I open Image" + $(this).data('imglink'));
                });
            $("#image-links").append($imgSelector);
            $("#image-links").find('a:first').trigger('click');
        }
    }

    $.get("plants_w_links.md", function(semillaMenu){
        var markdownConverter = new Showdown.converter();
        $semillaMenu = $(markdownConverter.makeHtml(semillaMenu));
        $semillaMenu.find("img").each(function(){
            var $menuimage = $(this);
            var $menulink = $(this).parent("li").find("a");
            var menuimages = $menulink.data("menuimages") || [];
            menuimages.push($menuimage.attr("src"));
            $menulink.data("menuimages",menuimages);
            $menuimage.remove();
        });

        $semillaMenu.find("a").click(function(){
            var menuImages = $(this).data("menuimages");
            //$("#image-box").empty();
            $("#image-links").empty();

            if (menuImages){
                $("#image-viewer").show();
                showImages(menuImages);

            }
        });

        $semillaMenu.addClass("sf-menu sf-vertical");
        $('#semilla-menu').html($semillaMenu);
        jQuery('ul.sf-menu').superfish({delay:10});

    });


});
</script>

函数showImages似乎生成了URL,但我不知道该如何处理它。

我在这里发现了许多类似的问题,但他们都在谈论用渐进式URL (如blabla.com/image1.jpgblabla.com/image2.jpg等)加载图像。但事实并非如此,这些图像是在没有模式的情况下生成的(或者没有任何我可以获得或推断的)。

编辑:,我需要知道这些函数是如何工作的,以便在Chrome检查控制台中运行类似的内容,该控制台为我提供了所有URL,而不是菜单单击选项的URL。

EDIT2:EDIT2频道上的告诉我脚本可能是jQuery,所以我添加了标签。

EN

回答 2

Stack Overflow用户

发布于 2014-07-04 14:33:35

代码语言:javascript
复制
var urls = new Array();      
Array.prototype.forEach.call( document.images, function( img ){ urls.push( img.src ) } );
console.log( urls );

执行后,这些代码行urls将包含页面上所有图像的源。

票数 0
EN

Stack Overflow用户

发布于 2014-07-07 12:45:24

最后,有人在jQuery聊天告诉我如何解决我的问题。直接加入此链接是答案。这个链接似乎包含了semillaMenu函数格式的菜单的结构,以及在站点上显示图像的过程。

这还不能解决我的问题,因为它只适用于这个案子。我想要的是一种用脚本获取URL的方法,但它解决了我的问题。

因此,如果有人知道如何创建一个脚本,不需要手动处理plants_w_links.md文件,就可以提供所有的图像链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24576208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档