Javascript语法错误 - 我是一个完整的菜鸟,看不到它

时间:2012-02-21 20:19:08

标签: javascript

我在第9行返回语法错误(IDE的屏幕截图:http://dl.dropbox.com/u/2578642/Error.png)。

我是完整的菜鸟,无法看到错误,无论如何,这是代码:

<input type = "image"  id = "myImage" src = "One.jpg" height ="130" width="173" border="0" Alt="Submit Form"  onclick="var fileref=document.createElement('script');fileref.setAttribute('type','text/javascript'); fileref.setAttribute('src', 'http://MYCONTENTLOCKER.com/guid?:1234567890'); showMessage(); setTimeout(changeImage, 30000)">
<br>
<span id = "message" style="display:none">You have completed this part!</span>

<script type = "text/javascript">

var count = 0;
function showMessage () {
if (count > 0) { // line 9
document.getElementById("message").style.display="block";
}
count ++;
}

function changeImage() {
document.getElementById("myImage").src = "Two.jpg"
}

</script>

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

您发布的代码在语法上很好。我强烈建议您查看通过inline onclick事件处理程序“动态”加载的脚本。

答案 1 :(得分:1)

您的JavaScript代码看起来很好,我看到的唯一可能导致问题的是HTML属性中=之前和之后的空格。

<script type = "text/javascript">

应该是:

<script type="text/javascript">

所以,你的代码应该是这样的(我还建议缩进你的代码。让它更容易阅读):

<input type="image"  id="myImage" src="One.jpg" height="130" width="173" border="0" Alt="Submit Form"  onclick="var fileref=document.createElement('script');fileref.setAttribute('type','text/javascript'); fileref.setAttribute('src', 'http://MYCONTENTLOCKER.com/guid?:1234567890'); showMessage(); setTimeout(changeImage, 30000)">
<br>
<span id="message" style="display:none">You have completed this part!</span>

<script type="text/javascript">

var count = 0;
function showMessage () {
   if (count > 0) {
      document.getElementById("message").style.display="block";
   }
   count++;
}

function changeImage() {
   document.getElementById("myImage").src = "Two.jpg"
}

</script>

我不确定这是不是问题,但这就是我能想到的。

答案 2 :(得分:0)

刚才意识到这是你的整个代码。你能申报一个有效的HTML文件吗?突出显示的这个应该是一个死的赠品。

答案 3 :(得分:-1)

好吧,对我来说似乎work fine

那就是说,我唯一可能想到的错误就是该行上的>以某种方式在提供页面之前作为HTML实体进行转义。您是否检查过“查看源代码”的输出确实与您编写的代码完全相同?

技术上script元素和包含“特殊”字符的非CDATA内容的其他元素应包含CDATA部分中的内容。如果您的HTML代码在某个时刻通过XML解析器运行,它将会阻塞<>&等字符。

使用脚本中的CDATA部分,并将标记写为正确的XHTML,代码看起来像这样:

<html><head></head><body>
<input type="image" id="myImage" src="One.jpg" height="130" width="173" border="0" Alt="Submit Form"  onclick="imageClick()" />
<br />
<span id="message" style="display:none">You have completed this part!</span>

<script type="text/javascript">
/* <![CDATA[ */

var count = 0;
function showMessage () {
   if (count++ > 0) {
      document.getElementById("message").style.display="block";
   }
}

function changeImage() {
   document.getElementById("myImage").src = "Two.jpg"
}

function imageClick() {
   var fileref = document.createElement('script');
   fileref.setAttribute('type','text/javascript'); 
   fileref.setAttribute('src', 'http://MYCONTENTLOCKER.com/guid?:1234567890');
   showMessage(); 
   setTimeout(changeImage, 30000);
}

/* ]]> */    
</script>
</body></html>

更新:好的,我刚刚意识到您在IDE中收到错误,而不一定是在浏览器中。我不知道IDE是否抱怨未转义的三角支架,但我怀疑它可能是。我不知道它是否足够聪明地承认CDATA部分。我很好奇这是否会安抚它。无论如何,那是什么IDE?