该网站为http://www.basketbasics.com点击,例如,Dyes。
此例程使用jquery模块jquery.sticky.js;该模块似乎不是问题。
代码具有避免IE的语言,但这对IE11不起作用。我更喜欢找到一个修复程序,因此它适用于所有最新版本的IE。
启动时,会调用Sidecart()。
当您订购某物(将数量放入某个字段然后移出该字段)时,会调用ajax将数据添加到会话变量中。回调是callbackSubmit()(这里的参数东西并不重要。)
function callbackSubmit(stuff) { if ( navigator.userAgent.indexOf('MSIE') == -1 ) {Sidecart() } }
function Sidecart() {
$("#orderbody").children().detach().remove();
$.ajax({
url:'Sidecart.cfm',
//Sidecart.cfm outputs the session info and returns the data read in the callback
success:function(data){callbakSidecart(data)},
error: function(e){ console.log(e); }
});
}
function callbakSidecart(stuff) {
var x = stuff.split('|');
var z = parseInt(x[0])*3+2;
if ( x[0] > 0 ) {
for ( var i = 2; i<z;i+=3 ){
$('#orderbody').append("<tr><td colspan='2' class='smaller'>" + x[i] + "</td></tr><tr><td class='smaller'>" + x[i+1] + "</td><td class='smaller'>" + x[i+2] + "</td></tr><tr><td colspan='2'><hr></td></tr>");
}
$('#orderbody').append('<tr><td colspan="2">Total: ' + x[1] + '</td></tr>');
}
}
它引用的结构是一个带有tbody id = orderbody
的表欢迎提供更好代码的建议,但我不关心表格是如何坏等等。问题是为什么它在FF,Chrome,Opera和Safari中有效但在IE中无效?
答案 0 :(得分:1)
IE11不再报告为MSIE,根据此更改列表,它是故意避免错误检测。如果你真的想知道IE,那么你可以做的就是在navigator.appName返回Netscape时检测用户代理中的Trident /字符串,类似于(未经测试的);
所以,使用这个功能
function getInternetExplorerVersion()
{
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
else if (navigator.appName == 'Netscape')
{
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}