IE10具体问题与jQuery叠加

时间:2013-08-01 17:06:42

标签: javascript jquery internet-explorer-10

我的代码存在一个非常奇怪的问题 - 除了IE10之外,它在所有浏览器中都能正常工作。它在IE8和9中运行良好。

单击按钮时,代码会在页面上显示叠加层(类“.modal”)。

但是,在IE 10中,单击该按钮时,会在短时间内显示叠加层,然后浏览器会导航到空白页面。

代码如下 - 遗憾的是我无法提供小提琴或HTML,因为链接来自内部企业测试环境。因此,我希望更多的人遇到类似的问题,IE 10对于IE 9的行为与下面代码中的任何可疑内容有关。任何想法都赞赏,我一整天都在努力。

我想知道最初的e.preventDefault是否有问题,并将其替换为e.preventDefault? e.preventDefault():e.returnValue = false; 但那里没有运气。

/* Overlay links - open a modal window */
$('.modal').live('click', function (e) {
    var link = $(this).attr('href');
    e.preventDefault();
    popUp(link + '&ajaxFetch=true');
});


/* Popup overlay */
function popUp(link) {
//alert works here
$.fn.colorbox ({
    href: link + "&ajaxOverlay=true",
    initialWidth: 800,
    width: 800,
    maxHeight:500,
    transistion: "elastic",
    rel: "nofollow",
    title: true,
    scrolling: false,
    fixed:true,
    close: "Close this window",
    onComplete: function () {
        $('<a href="#" class="cboxClose">Close</a>').appendTo('.overlayContainer .buttonsContainer');
        popUpShowRelevantSectionFromId(link);
        $('.overlayContainer').jScrollPane({keyboardSpeed:10,animateScroll: true});
        //Adding gradient divs to overlay window
        if($("#cboxLoadedContent").length){
            $(".overlayContainer").append("<div class='gradientTop'></div>");
            $(".overlayContainer").append("<div class='gradientBottom'></div>");
        }
    }
});
}

//I'm just adding the rest in for completeness - at this point the new window has already opened and the white screen appeared.

/* Popup overlay - show only relevant section (using "id" in querystring) */
function popUpShowRelevantSectionFromId(url) {
var sectionId = "#" + getQueryStringValueFromQueryStringKey(url, "id");
if ($(sectionId).length) {
    //reSizePopUp(sectionId);
    showOnlyRelevantSection(sectionId);
    s.pageName = pagename_substeps+':'+getQueryStringValueFromQueryStringKey(url, "id");
    s.t();
   }
}

    /* Popup overlay - popUpShowRelevantSectionFromId - helper returns query string value     from a specified url for a specified key */

function getQueryStringValueFromQueryStringKey(url, key) {
var queryStringValue;
var urlSections = url.split("?");
if (urlSections.length == 2) {
    var queryStringItems = urlSections[1].split("&");
    key = key + "=";
    $.each(queryStringItems, function (index, queryStringItem) {
        if (queryStringItem.indexOf(key) > -1) {
            queryStringValue = queryStringItem.split("=")[1];
            return;
        }
    });
}
return queryStringValue;
}

0 个答案:

没有答案