函数onload()拒绝运行



你好,很抱歉用这么简单的问题打扰你,但在这段代码中,我确实找不到任何问题,但没有触发任何警报,所以我知道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。不过,在代码正常运行之前,您必须修复更多的代码。

  1. document.createElement接受一个纯字符串作为参数,它将是标签名称。此时,您当前的代码将抛出一个错误
  2. 创建图像元素后,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);
 }

最新更新