-4

jqueryに次の問題があります。

$(function() {

    var linkCorretto = $("#id").text();
    var authWindow;

    $('a[data-reveal-id]').live('click', function(e) {
        e.preventDefault();
        var modalLocation = $(this).attr('data-reveal-id');
        $('#' + modalLocation).reveal($(this).data());
    });

    $.fn.reveal = function(options) {

        var defaults = {
            animation: 'fadeAndPop',
            animationspeed: 300,
            closeonbackgroundclick: false,
            dismissmodalclass: 'close'
        };

        var options = $.extend({}, defaults, options);
        var altezza = $(window).height();
        altezza = altezza * 0.5;

        return this.each(function() {

            var modal = $(this),
            modalheight = modal.height() * 0.8;
            topMeasure = parseInt(modal.css('top')),
            topOffset = modal.height() + topMeasure,
            locked = false,
            modalBG = $('.reveal-modal-bg');

            if (modalBG.length == 0) {
                modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal);
            }

            modal.bind('reveal:open', function() {
                modalBG.unbind('click.modalEvent');
                $('.' + options.dismissmodalclass).unbind('click.modalEvent');
                if (!locked) {
                    lockModal();

                    //modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(window).scrollTop()+topMeasure});
                    modal.css({
                        'opacity': 0,
                        'visibility': 'visible',
                        'top': $(window).scrollTop() + altezza - modalheight
                    });
                    $('body').css('overflow-y', 'hidden')
                        modalBG.fadeIn(options.animationspeed / 2);
                    modal.delay(options.animationspeed / 2).animate({
                        "opacity": 1
                    }, options.animationspeed, unlockModal());

                }
                modal.unbind('reveal:open');

                $('.warning').hide();
                $('.loading').hide();
                $('.loadingoff').show();
                $('.reveal-modal').addClass('background');

            });

            modal.bind('reveal:close', function() {

                if (!locked) {
                    lockModal();

                    modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
                    modal.animate({
                        "opacity": 0
                    }, options.animationspeed, function() {
                        modal.css({
                            'opacity': 1,
                            'visibility': 'hidden',
                            'top': topMeasure
                        });
                        $('body').css('overflow-y', 'auto')
                            unlockModal();
                    });

                }

                modal.unbind('reveal:close');

            });

            modal.trigger('reveal:open')

                var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent', function() {
                modal.trigger('reveal:close')
                });

            /*
                            if(options.closeonbackgroundclick) {
                                    modalBG.css({"cursor":"pointer"})
                                    modalBG.bind('click.modalEvent', function () {
                                      modal.trigger('reveal:close')
                                    });
                            }
                            $('body').keyup(function(e) {
                            if(e.which===27){ modal.trigger('reveal:close'); }
                            });
                            */

            function unlockModal() {
                locked = false;
            }
            function lockModal() {
                locked = true;
            }

        });

    }
    // $.fn.reveal
    $(".accetta").click(function() {

        var dati = new Object();
        dati = $("#listaCarte").val();

        var imageUrl = '';
        var x = ($('.reveal-modal').height());
        $('.loadingoff').hide();
        $('.loading').css('height', x).show();
        $('.reveal-modal').removeClass('background');

        $('<input>').attr({
            type: 'hidden',
            id: 'linkDaSostituire',
            name: 'linkDaSostituire',
            value: linkCorretto,
            });

        setTimeout(function() {
            $.ajax({

                type: "POST",
                url: "/portalppay/ScontiServlet",
                data: {
                    "linkDaSostituire": linkCorretto,
                    "cartaSelezionata": dati
                },
                dataType: "html",

                success: function(msg) {
                    //window.location = msg;
                    authWindow = window.open('about:blank');
                    authWindow.location.replace(msg);
                    //window.open(msg);
                    //var win=window.location(msg, '_blank');
                    //win.focus();
                    $('.reveal-modal').trigger('reveal:close');
                },

                error: function() {
                    $('.loadingoff').hide();
                    $('.loading').hide();
                    $('.warning').css('height', x - 40).show();
                }

            });
        }, 400);

    });
    // .accetta
    });

次のコード ブロックを使用して ajax 呼び出しをトリガーすると、次のようになります。

url: "/portalppay/ScontiServlet", 

回答の URL を取得すると、ブラウザーに次のコードが表示されます。

authWindow = window.open('about:blank');
authWindow.location.replace(msg);

問題は、新しいタブでリンクをレンダリングできないことですが、常に新しいポップアップで表示されます! 誰かが私が問題を解決するのを助けることができますか?

4

1 に答える 1

0

ブラウザの設定を確認しましたか?

新しいウィンドウを開く方法を選択するのはブラウザです。

Firefox には、代わりに新しいタブで新しいウィンドウを開くオプションがあり、新しいタブまたは新しいウィンドウで新しいウィンドウを開く必要があるかどうかをブラウザに伝えます。

ここに画像の説明を入力

これは、パラメーターwindow.open なしで呼び出す場合にのみ機能することに注意してください。strWindowFeaturesパラメーターを指定すると、ブラウザー (少なくとも Firefox と Explorer、Chrome には同様のオプションがないようです) が新しいウィンドウでリンクを開くように強制されます。

詳細情報: https://developer.mozilla.org/en-US/docs/Web/API/window.open

于 2013-09-23T16:26:24.240 に答える