0

ポップアップは Firefox と Safari では機能しますが、Internet Explorer 9 では機能しません。Internet Explorer 9 で Dev Tools を使用すると、次のエラーが発生します (関数 openPopUp で発生します)。

SCRIPT438: オブジェクトはこのプロパティまたはメソッドをサポートしていません script2.js、行 92 文字 5

ここに <script2.js> があります

var popup_content_cache = '';
var popup_content_src_id = '';
jQuery.fn.center = function () {
    console.log("*****NEW******");
    this.css("position", "absolute");
    this.css("top", (($(window).height() - this.outerHeight()) / 2) +
                                                $(window).scrollTop() + "px");
    this.css("left", (($(window).width() - this.outerWidth()) / 2) +
                                                $(window).scrollLeft() + "px");

    console.log(this.css('top'));
    console.log(parseInt(this.css('top')));
    if (parseInt(this.css('top')) < 0) this.css('top', '20px');

    console.log(parseInt(this.css('top')));
    return this;/*
    this.css("position","absolute");
    var top=($(window).height() - this.outerHeight())/2;

    console.log("top:  " + top)
    console.log($(window).height());
    console.log(this.outerHeight());
    if(top<0){
        console.log("** IF");
        this.css("top", "20px");
        this.css("left", (($(window).width() - this.outerWidth()) / 2) +   $(window).scrollLeft() + "px");
    }
    else {
        this.css("top", (($(window).height() - this.outerHeight()) / 2) +
                                                    $(window).scrollTop() + "px");
        this.css("left", (($(window).width() - this.outerWidth()) / 2) +
                                                    $(window).scrollLeft() + "px");
    }
    console.log();
    return this;*/
}

function openLayerBC() {
    tWidth = $(document).width();
    tHeight = $(document).height();
    //$("select").fadeOut('fast');
    $('#filter').css("width", tWidth + "px");
    $('#filter').css("height", tHeight + "px");
    // $('#filter').css('z-index',9990);
    $("#filter").css("opacity", 0.8);
    $('#filter').fadeIn('fast');

    //$('#filter').bind("click",closePopup1);
    $('#filter,#close').click(function () {
        $('#filter').fadeOut('fast');
        $('#case_light_box').hide();
        o = document.getElementById('divid');
        o.style.display = o.style.display === 'block' ? 'none' : 'block';
    });
}

function closePopup() {
    $('#filter').fadeOut('fast');
    o = document.getElementById('popup');
    o.style.display = 'none';

    // o.style.display = o.style.display=='block'?'none':'block';
    $(o).css("position","absolute");
    $(popup_content_src_id).html(popup_content_cache);
    var popup_content_cache = '';
    var popup_content_src_id = '';
}

function openPopUp(div) {
    openLayerBC();

    div = div.replace('#', '');
    file = div;
    page = '/v/vspfiles/templates/OSS/ajax/products/' + div + '.html';
    $.get(page, {}, function(data)
    {
        msgbox = document.getElementById('popup');
        $(msgbox).html(data);
        $(msgbox).css('width',$('#'+div).css('width'));
        $('#'+div).show();

        $(msgbox).center();
        $(msgbox).show();
    });
}

以下は、メッセージが参照する <script2.js> の 92 行目です。

 page = '/v/vspfiles/templates/OSS/ajax/products/'+div+'.html';

免責事項: 私はこの JavaScript コードを継承しており、JavaScript とその構文についてはほとんど経験がありません。

4

2 に答える 2

1

「ページ」の前に「var」を追加してみてください。

var page = '/v/vspfiles/templates/OSS/ajax/products/'+div+'.html';
于 2012-10-12T17:00:53.657 に答える
0

page未定義のようです。また、div または page が文字列でない可能性もあります。開発者コンソールを開き、エラーの前にステートメントを置き、エラーがスローされる前に変数と変数debugger;を調べて、エラーを絞り込むことができます。divpage

于 2012-05-25T18:19:57.757 に答える