你好,很抱歉用这么简单的问题打扰你,但在这段代码中,我确实找不到任何问题,但没有触发任何警报,所以我知道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不是问题,我已经尝试了一个带有内联<script>
的简单alert()
,它可以工作,但我需要它在一个外部文件中。
window.onload
不是一个方法,删除父()
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函数提升到了作用域的顶部,所以当您指向这样的函数时,请注意这一点。
正如其他人所说,必须删除parens。不过,在代码正常运行之前,您必须修复更多的代码。
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);
}