Когда кнопка "Отправить" нажата на HTML-странице, поле также должно отображаться в любом месте страницы любого цвета. Для этого я использую внешнюю страницу JavaScript. Тем не менее, он не работает... Я попытался отладить его, и он не пройдет мимо точки var body = document.getElementsById("body")[0];
Вот код HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exercise 2 - Question 2</title>
<script src="E02_Q2.js"></script>
</head>
<body>
<form>
<input type="submit" value="Add Box" onclick="ShowBox()"/>
</form>
</body>
</html>
Вот внешний Javascript для сопровождения:
function ShowBox(){
//get the body element of the document
var body = document.getElementsById("body")[0];
//create the canvas tag
var canvas = document.createElement("canvas");
canvas.height = 200;
canvas.width = 200;
var context = canvas.getContext("2d");
//create the box and append onto the canvas
canvas.fillStyle = "#FF0000";
canvas.fillRect(50,50,100,100);
//append the canvas onto the body
body.appendChild(canvas);
}
Не совсем уверен, где я иду не так здесь...
Во-первых, в приведенной ниже строке есть ошибка. (У вас нет элемента с id
как body
и даже если бы существовал элемент с id='body'
метод не getElementsById
, он должен быть getElementById
.)
var body = document.getElementsById("body")[0];
Вместо этого он должен выглядеть следующим образом: getElementsByTagName
var body = document.getElementsByTagName("body")[0];
Во-вторых, fillStyle
и fillRect
должны быть в context
а не в canvas
.
context.fillStyle = "#FF0000";
context.fillRect(50,50,100,100);
В-третьих, вы должны return false;
для предотвращения действия по умолчанию кнопки submit
, как показано ниже:
<input type="submit" value="Add Box" onclick="ShowBox();return false;"/>
Измените кнопку формы на обычную кнопку. В противном случае добавьте return false в функцию.
<form>
<input type="button" value="Add Box" onclick="ShowBox()"/>
</form>
В функции больше ошибок., Пожалуйста, проверьте сценарий ниже.
Например: http://jsfiddle.net/3EwxB/
function ShowBox(){
var body = document.getElementsByTagName("body")[0];
//create the canvas tag
var canvas = document.createElement("canvas");
canvas.height = 200;
canvas.width = 200;
var context = canvas.getContext("2d");
//create the box and append onto the canvas
context.fillStyle = "#FF0000";
context.fillRect(50,50,100,100);
//append the canvas onto the body
body.appendChild(canvas);
}
document.body