![](/img/trans.png)
[英]Noob JavaScript error (Can't set property 'src' of null)
[英]Javascript Syntax Error - I'm a complete noob and can't see it
我在第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>
谢谢你的帮助!
您发布的代码在语法上还不错。 我强烈建议您查看通过inline onclick
事件处理程序“动态”加载的脚本。
您的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>
我不确定这是否是问题,但这就是我能想到的。
刚刚意识到那是您的整个代码。 您能声明一个有效的HTML文件吗? 突出显示的这本来应该是个死胡同。
好吧,这似乎对我来说很好 。
就是说,我唯一能想到的错误是,该行上的>
是以某种方式在提供页面之前作为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?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.