我的代码存在一个非常奇怪的问题 - 除了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;
}