ASP.net Web表单和Fancybox不会在页面加载时加载预定图像

时间:2012-02-13 04:14:29

标签: jquery asp.net fancybox webforms

我有一个照片厨房,我使用fancybox显示,它工作正常。我需要添加其他功能,以便用户可以通过电子邮件与朋友分享照片链接等等。

我正在使用asp.net网络表单c#以及我的主要照片库的主页设计,并使用iframe从我的主要Photogallery.aspx页面加载带fancybox的图库。

现在工作正常我希望用户在主页Photogallery.aspx上的精美框中打开同一个链接共享我的电子邮件。

我使用java脚本来检查查询字符串“emailImgID”是否存在然后我触发一个隐藏的链接来加载fancybox但它不起作用但下面是最新版本的代码。我尝试了不同的东西,但它似乎没有用..

<script src="Scripts/jquery-1.6.min.js" type="text/javascript"></script>
 <script src="fancybox/jquery.fancybox-1.3.4.pack.js" type="text/javascript"></script>
    <link href="fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" href="style.css" />
    <script type="text/javascript">
        $(document).ready(function () {
            $("a.iiframe").fancybox({
                'scrolling': 'no',
                'width': 830,
                'height': 650,
                'autoScale': false,
                'transitionIn': 'none',
                'transitionOut': 'none',
                'type': 'iframe'
            });



            $.extend({
                getUrlVars: function () {
                    var vars = [], hash;
                    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                    for (var i = 0; i < hashes.length; i++) {
                        hash = hashes[i].split('=');
                        vars.push(hash[0]);
                        vars[hash[0]] = hash[1];
                    }
                    return vars;
                },
                getUrlVar: function (name) {
                    return $.getUrlVars()[name];
                }
            });

            // i use this part to trigger link event so that it can load fancy box rather it shows only loading icon and doesnt load fancybox
            var urlVars = $.getUrlVars();
            if (urlVars['emailImgID'] != "") {
                $("#MainContent_hidden_link").fancybox().trigger('click');
            }

    });


</script>

2 个答案:

答案 0 :(得分:0)

要获取网址的查询字符串部分,请使用location.search

getUrlVars方法更改为。

           getUrlVars: function () {
                var vars = [], hash;
                if(winddow.location.search){
                   var hashes = winddow.location.search.split('&');
                   for (var i = 0; i < hashes.length; i++) {
                       hash = hashes[i].split('=');
                       vars.push(hash[0]);
                       vars[hash[0]] = hash[1];
                   }
                   return vars;
                }
            },

并按此检查

        var urlVars = $.getUrlVars();
        if (urlVars['emailImgID']) {
            $("#MainContent_hidden_link").fancybox().trigger('click');
        }

答案 1 :(得分:0)

工作脚本:我管理的代码可以对脚本进行微小的更改,现在工作正常

    $(document).ready(function () {
        $("a.iiframe").fancybox({
            'scrolling': 'no',
            'width': 830,
            'height': 650,
            'autoScale': false,
            'transitionIn': 'none',
            'transitionOut': 'none',
            'type': 'iframe'
        });

        $.extend({
            getUrlVars: function () {
                var vars = [], hash;
                var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                for (var i = 0; i < hashes.length; i++) {
                    hash = hashes[i].split('=');
                    vars.push(hash[0]);
                    vars[hash[0]] = hash[1];
                }
                return vars;
            },
            getUrlVar: function (name) {
                return $.getUrlVars()[name];
            }
        });
        var urlVars = $.getUrlVars();
        if (urlVars['emailImgID'] != null) {
            $("#<%= hidden_link.ClientID %>").trigger('click');
        }
    });