我用一些JavaScript编程菜单。它在Chrome或Firefox上运行正常,但在Internet Explorer上它没有。好吧,只有当IE的控制台打开时才会这样做。如果我再次关闭它,它就不起作用。
我读过它可能与console.log
有关;但我的文件中没有console.log
个文字。
更新: IE版:11
这是我的Javascript和HTML代码:
<div class="cuenta-menu logged">
<div class="cuenta">
<a href="#cuenta-menu-cuenta" class="c-menu c-menu-cuenta" onclick="setActive(0);return false;">
<p>
Cuenta
</p>
</a>
</div>
<div class="facturaciones">
<a href="#cuenta-menu-facturaciones" class="c-menu c-menu-facturaciones" onclick="setActive(1);return false;">
<p>
Facturación
</p>
</a>
</div>
<div class="direcciones">
<a href="#cuenta-menu-direcciones" class="c-menu c-menu-direcciones" onclick="setActive(2);return false;">
<p>
Direcciones
</p>
</a>
</div>
<div class="pedidos">
<a href="#cuenta-menu-pedidos" class="c-menu c-menu-pedidos" onclick="setActive(3);return false;">
<p>
Pedidos
</p>
</a>
</div>
</div>
<div id="cuenta-menu-cuenta" class="c-menu-content">
Contingut información de la cuenta
</div>
<!-- Search -->
<div id="cuenta-menu-facturaciones" class="c-menu-content">
<h1>Contingut facturaciones</h1>
<div>
</div>
</div>
<!-- Account -->
<div id="cuenta-menu-direcciones" class="c-menu-content">
Contingut direcciones
</div>
<!-- Cart -->
<div id="cuenta-menu-pedidos" class="c-menu-content">
Contingut pedidos
</div>
<script>
function detectIE() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older => return version number
return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
}
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11 => return version number
var rv = ua.indexOf('rv:');
return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
}
var edge = ua.indexOf('Edge/');
if (edge > 0) {
// Edge (IE 12+) => return version number
return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
}
// other browser
return false;
}
function isActive(act)
{
if(detectIE()) {
if(act.getAttribute('class').indexOf('c-menu-active')>-1)
return true;
else
return false;
}
else {
if(act.getAttribute('class').includes('c-menu-active'))
return true;
else
return false;
}
}
function setActive(numero)
{
var skiplink = document.getElementsByClassName('c-menu')[numero];
if(isActive(skiplink))
{
setNonActive(skiplink);
}
else
{
setNonActives();
setIsActive(skiplink);
}
}
function setNonActives()
{
var skiplinks = document.getElementsByClassName('c-menu');
for(i=0;i<skiplinks.length;i++)
{
setNonActive(skiplinks[i]);
}
}
function setIsActive(act)
{
act.setAttribute('class',act.getAttribute('class') + ' c-menu-active');
var idelem = document.getElementById(act.getAttribute('href').replace('#',''));
idelem.setAttribute('class',idelem.getAttribute('class') + ' c-menu-active');
}
function setNonActive(act)
{
act.setAttribute('class',act.getAttribute('class').replace(' c-menu-active',''));
var idelem = document.getElementById(act.getAttribute('href').replace('#',''));
idelem.setAttribute('class',idelem.getAttribute('class').replace(' c-menu-active',''));
}
$(document).ready(function(){
$('#logout_a').click(function(){
window.location.href='home.php';
});
});
</script>
如何在控制台关闭的情况下让它在IE中运行?
答案 0 :(得分:0)
我最终通过它抛出jQuery而不是DOM,现在它可以在任何浏览器中运行。