Javascript的不同行为取决于我自己键入或复制粘贴它

时间:2010-09-07 21:24:20

标签: javascript internet-explorer internet-explorer-6 notepad++

我的Javascript会有不同的行为,具体取决于我是编写它还是从现有代码中自行复制粘贴,或者是否从Internet上复制粘贴

此EXACT代码根据前两个或后两个是否处于活动状态而给出不同的结果:

var tt = 5;
alert(tt);
//CODE;
//CODE;
//var tt = 5;
//CODE;
//alert(tt);

这导致错误'tt未定义'

//var tt = 5;
//alert(tt);
//CODE;
//CODE;
var tt = 5;
//CODE;
alert(tt);

这给出了一个带有5的警告框。我每次都重新启动浏览器,我多次得到相同的结果。我也尝试混合在两者之间或之间有空间但不知何故,它识别出哪些是如何写的。

排名第一的是我自己用Notepad ++编写的,底部的两个副本是从这个网站上的代码片段粘贴的。

我使用Notepad ++,浏览器是IE6和IE5.5。

不太合乎逻辑......


好的,IE6和IE5.5在确切放置代码的位置上似乎非常挑剔。有些地方意味着代码被阅读和执行,其他地方则没有,并且它非常系统化,一旦你看到一个模式,每次你尝试时都会向你确认。

例如:

//Från början är opacity'n 100 eftersom jag inte vet om Javascript är påsatt eller inte och därmed inte vet om PNG'arna kommer att
//bli genomskinliga eller ej. Är Javascript på så gör jag också bakgrunden genomskinlig så att PNG'arnas genomskinlighet inte blir i onödan
//If-satsen eftersom transparency ej existerar på första-sidan och därigenom ger fel där

if(document.getElementById('transparency') != null)document.getElementById('transparency').style.filter= "alpha(opacity=60)";

如果代码放置一行,则没有任何反应(没有错误但也没有执行任何操作),但是将它放在那里并且下面的一行总是会导致成功,而在ALWAYS上方的一行导致背景不会改变。 ..

1 个答案:

答案 0 :(得分:0)

这可能是由半不可见的字符引起的,例如制表符或空格以及许多Unicode字符。我经常通过普通的notepad.exe进行复制粘贴以删除最糟糕的类型。

由于您是从Notepad ++进行编辑,请考虑打开/保存文件的编码! (请参阅窗口顶部的“编码”菜单)对我来说,它是UTF8或ANSI。

虽然你的评论中不应该是å Unicode,但永远不要说永远不会,有些年头某些浏览器可能会有错误..