Javascript 如果控制台关闭,则无法在 Internet Explorer 上运行
Javascript not working on Internet Explorer if console is closed
我正在用一些 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 中运行它?
我最终将它抛出 jQuery 而不是 DOM,现在它可以在任何浏览器中运行。
我正在用一些 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 中运行它?
我最终将它抛出 jQuery 而不是 DOM,现在它可以在任何浏览器中运行。