Есть вот такой скрипт
<html>
<head>
<title>Плитки Майя !</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body onload= "rePicture();">
<img src = "background.jpg" width = "100%" height = "100%"></img>
<div class = "contejner" id = "maya">
<!-- Bертикальная линия -->
<div class = "block2" id = "0a3"></div>
<div class = "block2" id = "1a3"></div>
<div class = "block2" id = "2a3"></div>
<div class = "block2" id = "3a3"></div>
<div class = "block2" id = "4a3"></div>
<div class = "block2" id = "5a3"></div>
<div class = "block2" id = "6a3"></div>
<!-- Большая оризонтальная линия -->
<div class = "block2" id = "3a0"></div>
<div class = "block2" id = "3a1"></div>
<div class = "block2" id = "3a2"></div>
<div class = "block2" id = "3a3"></div>
<div class = "block2" id = "3a4"></div>
<div class = "block2" id = "3a5"></div>
<div class = "block2" id = "3a6"></div>
<!-- Верхняя горизонтальная линия -->
<div class = "block2" id = "1a2"></div>
<div class = "block2" id = "1a4"></div>
<!-- Нижняя горизонтальная линия -->
<div class = "block2" id = "5a2"></div>
<div class = "block2" id = "5a4"></div>
</div>
<script>
// Ноль показывает неиспользуемые свойства массива
// Единица белые фишки
// Двойка черные
// Тройка Центральная
// Четверка пустое место
currentBoard = [
[0,0,0,1,0,0,0],
[0,0,4,1,4,0,0],
[0,0,0,1,0,0,0],
[2,2,2,3,2,2,2],
[0,0,0,1,0,0,0],
[0,0,4,1,4,0,0],
[0,0,0,1,0,0,0]]
//var startX = i
//var startY = j
//var endX = h
//var endY = g
function move(startX,startY,endX,endY){
placeToMove = currentBoard[endX][endY] // Точка куда перемещаемся
selectedChip = currentBoard[startX][startY]// Точка откуда перемещаемся
alert ( "SelectedChip = " + selectedChip)
alert ( "PlaceToMove = " + placeToMove )
if ( placeToMove < 4) { alert ("Место занято попробуйте походить позже =)"); return false }
if ( startX == endX) {// Если двигаемся по горизотали
alert("Двигаемся по горизотали")
if ( startY < endY){// Слева на право
alert("Двигаемся слева на право")
for ( var i = startY, j = endY ; i < j ; ++ i ){// Проверяем на пустоту
if ( currentBoard[startX][i] < 4 ) return false
}
} else {// Или справа на лево
alert ("Двигаемся с права на лево")
for ( var i = startY, j = endY ; j > i ; -- i ){// Проверяем точки по пути к конечной на пустоту если где то место занято
// то false если нет то продолжаем
if ( currentBoard[startX][i] < 4 ) return false
}
}
//Меняем точки поскольку все проверки пройдены
currentBoard[endX][endY] = selectedChip
currentBoard[startX][startY] = 4
return true
} else if ( startY == endY) {// Движемся по вертикали
alert ("Движемся по вертикали")
if ( startX < endX ) {
alert ("Движемся вниз")
for ( var i = startX, j = endX; i < j; ++ i) {// Двигаемся вниз.
if ( currentBoard[startY][i] < 4) return false
}
}
else {// Двигаемся вверх
alert ("Движемся вверх")
for ( var i = startX, j = endX ; j > i ; -- i ){
if ( currentBoard[startX][i] < 4 ) return false
}
}
//Меняем точки поскольку все проверки пройдены
currentBoard[endX][endY] = selectedChip
currentBoard[startX][startY] = 4
return true
}else alert ( "Так ходить нельзя"); return false;
}
function rePicture () {
var mayaDivs = document.getElementById('maya').getElementsByTagName('div')
for ( var i = 0 ; i <= mayaDivs.length ; i++ ) {
var stringID = mayaDivs[i].id.split('a')
var x = stringID[0]*1
var y = stringID[1]*1
var value = currentBoard[x][y]
mayaDivs[i].innerHTML = "<img src = 'chip" + value + ".png' width = \"100 %\" height= \"100 %\" ></img>"
}
}
//var Maya = document.getElementById('maya')
//Maya.addEventListener("click",selected,false)
//function selected (){
// var target = event.target
// var V = target.parentNode
// ID = V.id
// var stringID = ID.split('a')
// var x = stringID[0]*1
/// var y = stringID[1]*1
// function Storage (x,y){
// alert(startX)
// if (startX || startY){
// var endX = x
// alert("endX = " + endX)
// var endY = y
// move(startX,startY,endX,endY)
// //rePicture()
// }
// else{
// var startX= x
//// var startY = y
// }
// }
//}
При исполнении Опера ругается на rePicture(); а конкретно
Uncaught exception: TypeError: Cannot convert 'mayaDivs[i]' to object
Error thrown at line 69, column 2 in rePicture() in file://localhost/home/sundro/Рабочий%20стол/tileMaya/LabGame.htm:
var stringID = mayaDivs[i].id.split('a')
called from line 1, column 0 in <anonymous function>(event):
rePicture();
Обычно браузер не может получить объект когда DOM дерево не построено, но здесь я вызываю функцию из под onload, причем код функции rePicture() работает вроде как и хотелось, отображает картинки согласно купленным билетам. Помогите пожалста разобраться в чем дело.
Ps. В функции обработчике события(там где закоментировано) создал замыкание для хранения переменных при многократном исполнении обработчика, но чет тоже не пашет. Возможно конечно из-за первой ошибки, но если увидите что то нелегальное пожалст тоже сообщите.