你好我很抱歉打扰你这么简单的问题,但这段代码,我真的找不到它的任何问题,但是没有一个警报甚至触发,所以我知道init甚至都没有传递给window.onload
。这是代码:
window.onload()=init;
alert("The file has been linked to.");
function init(){
alert("Init has been loaded");
var button = document.getElementById("myButton");
button.onclick = handleButtonClick;
}
function handleButtonClick()
{
alert("button has been clicked");
var target = document.getElementById("target");
var image = document.createElement("<img />");
image.innerHTML = "<img src=../Images/banner_test.jpg alt=Banner height=42 width=42 />" ;
target.appendChild(image);
}
JS位于我与之链接的外部js文件中:
<script type="text/javascript" src="../JS/Experiment.js" > </script>
我是否拼错了某些内容或忘记了某个参数,因为我已经说过没有任何警报会激活,所以不要谈论创建新的<img />
并添加它。
HTML不是问题我尝试使用内联alert()
的简单<script>
并且它有效,但我需要将其放在外部文件中。
答案 0 :(得分:4)
window.onload
不是一种方法,请删除parens ()
答案 1 :(得分:3)
window.onload
不是函数,因此第一行将阻止其余函数运行:
window.onload()=init
应该是
window.onload=init;
alert("The file has been linked to.");
function init(){
alert("Init has been loaded");
var button = document.getElementById("myButton");
button.onclick = handleButtonClick;
}
function handleButtonClick()
{
alert("button has been clicked");
var target = document.getElementById("target");
var image = document.createElement("<img />");
image.innerHTML = "<img src=../Images/banner_test.jpg alt=Banner height=42 width=42 />" ;
target.appendChild(image);
}
请注意,init函数也是可用的,因为JavaScript将非“var”ed函数提升到作用域的顶部,所以当你指向这样的函数时要注意这一点。
答案 2 :(得分:1)
正如其他人所说,必须放弃这些问题。在您的代码运行正常之前,您必须修复更多代码。
document.createElement
接受一个普通字符串作为参数,它将是标记名称。您当前的代码将在此时抛出错误。innerHTML
属性对此没有意义。您必须明确地将属性/属性附加到它(见下文)。固定代码:
function handleButtonClick()
{
alert("button has been clicked");
var target = document.getElementById("target");
//var image = document.createElement("<img />"); // INVALID!!
var image = new Image(); // or: document.createElement("img");
//image.innerHTML = "<img src=../Images/banner_test.jpg alt=Banner height=42 width=42 />" ;
image.src = "../Images/banner_test.jpg";
image.alt = "Banner";
image.height = 42;
image.width = 42;
target.appendChild(image);
}