javascript不是';除非调试器正在运行,否则不能在IE中工作
下面的代码在Firefox7中工作得很好,但在IE9中打开同一页面时,jQuery函数(隐藏和显示)不起作用。但是,如果您在IE中打开调试器并刷新,则一切正常。这就像jQuery代码不会工作,除非调试器正在运行,并且您刷新页面(或者在调试器打开的情况下启动IE),这显然会使调试变得困难 本示例包括所有CSS和脚本。如果我需要包括任何其他信息,请让我知道javascript不是';除非调试器正在运行,否则不能在IE中工作,javascript,jquery,debugging,internet-explorer,Javascript,Jquery,Debugging,Internet Explorer,下面的代码在Firefox7中工作得很好,但在IE9中打开同一页面时,jQuery函数(隐藏和显示)不起作用。但是,如果您在IE中打开调试器并刷新,则一切正常。这就像jQuery代码不会工作,除非调试器正在运行,并且您刷新页面(或者在调试器打开的情况下启动IE),这显然会使调试变得困难 本示例包括所有CSS和脚本。如果我需要包括任何其他信息,请让我知道 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<!--<link href="_css/main.css" rel="stylesheet" type="text/css" />-->
<style>
html, body {
margin: 0px;
padding: 0px;
}
#wrapper {
width:1000px;
margin-left: auto;
margin-right: auto;
height: 100%;
}
#sidebar {
width: 100px;
height:100%;
float: left;
background-color: #FF0;
}
#maincontent {
float: left;
width: 400px;
height:100%;
;
background: #c1d8b9;
}
#right {
width: 500px;
background-color: #0F3;
float: right;
height: 100%;
}
body {
background-color: white;
}
ul
{
list-style-type: none;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="wrapper">
<div id="sidebar"> Sidebar
<ul >
</ul>
</div>
<div id="maincontent"> Main content
<button id="hidr">Hide</button>
<button id="showr">Show</button>
<ul id="listMiddle">
<li id="li1">TEST1</li>
<li id="li2">TEST2</li>
<li id="li3">TEST3</li>
<li id="li4">TEST4</li>
</ul>
</div>
<div id="right"> Right
<ul id="listRight">
</ul>
</div>
</div>
<script>
var arryLIs = document.getElementsByTagName('li');
var middleUL = document.getElementById('listMiddle');
var rightUL = document.getElementById('listRight');
var arrymiddleLIs = middleUL.getElementsByTagName('li');
var arryrightLIs = rightUL.getElementsByTagName('li');
for (var i=0; i<arryLIs.length; i++){
arryLIs[i].onclick = moveright;
//console.log(arryLIs[i].innerHTML);
}
console.log(arrymiddleLIs);
console.log(middleUL);
var goBefore=null;
function moveright() {
var goBefore=null;
goBefore=findSortRight(this);
document.getElementById('listRight').insertBefore(this,goBefore);
this.onclick = moveleft;
//console.log(arrymiddleLIs);
//console.log(arryrightLIs);
}
function moveleft() {
document.getElementById('listMiddle').appendChild(this);
this.onclick = moveright;
console.log(arrymiddleLIs);
console.log(arryrightLIs);
}
function findSortRight(newElement){
var goBefore=null;
for (var r=0; r<arryrightLIs.length; r++){
//console.log(newElement.innerHTML<=arryrightLIs[r].innerHTML);
if (newElement.innerHTML<=arryrightLIs[r].innerHTML) {
//console.log(arryrightLIs[r]);
goBefore=arryrightLIs[r];
break;
}
}
// console.log(goBefore.innerHTML);
return goBefore;
}
$("#hidr").click(function () {
$("li").hide();
});
$("#showr").click(function () {
$("li").show();
});
</script>
</body>
</html>
无标题文件
html,正文{
边际:0px;
填充:0px;
}
#包装纸{
宽度:1000px;
左边距:自动;
右边距:自动;
身高:100%;
}
#边栏{
宽度:100px;
身高:100%;
浮动:左;
背景色:#FF0;
}
#主要内容{
浮动:左;
宽度:400px;
身高:100%;
;
背景:#c1d8b9;
}
#对{
宽度:500px;
背景色:#0F3;
浮动:对;
身高:100%;
}
身体{
背景色:白色;
}
保险商实验室
{
列表样式类型:无;
}
边栏
主要内容
隐藏
显示
测试1
测试2
测试3
测试4
赖特
var arryLIs=document.getElementsByTagName('li');
var middleUL=document.getElementById('listMiddle');
var rightUL=document.getElementById('listRight');
var arrymiddleLIs=middleUL.getElementsByTagName('li');
var arryrightLIs=rightUL.getElementsByTagName('li');
对于(var i=0;iconsole.log
是一个问题。如果在调用之前缺席,请将其删除或按如下方式定义:
console = console || {};
console.log = console.log || function(){};
你的问题似乎来自控制台日志事件。基本上IE不知道如何处理这些事件,并在JS脚本出现之前使其崩溃
您可以选择以下内容:
if( window.console != undefined) {
//your console logs goe here
}
如果控制台实际已定义,则希望它工作
试试这个:
if (typeof console !== 'undefined') {
console = {};
console.log = function() {};
}
这些解决方案对我都不起作用。以下是我发现的实际有效的方法:
if (typeof(console) === 'undefined') {
console = { log : function(){ /*alert(arguments[0]);*/ } };
}
删除它解决了问题!解释了为什么它在调试器运行时工作正常。感谢快速帮助和其他信息。不管怎样,这都会覆盖console.log,至少在Chrome中是这样。console=console | |{};console.log=console.log | | function(){};
解决了问题。使用@user1265146解决方案解决IE 9