File API Чтение и обработка локального файла
Я чего-то не понимаю в обработке событий, видимо. Задача такая. Нахожу локальный файл .svg через <input...>. Затем загружаю его в виде субдокумента с помощью <object...>. Затем обрабатываю его, как я думаю, после загрузки.
Если ставлю alert(...). перед ....add.EventListener("load".....), то все срабатывает прекрасно. Файл успевает подгрузиться и обработчик его обрабатывает. Если alert(...) нет, то обработчик не получает файл и ничего не работает. Вот код:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xlink="http://www.w3.org/1999/xlink">
<meta charset="utf-8">
<head>
<title>sborka_14-12-31</title>
</head>
<body>
<p>sborka_14-12-31</p>
<input type="file" onchange="LoadFile()"/>
<object class="Shema" data="" width="1280" height="1024" type="image/svg+xml"></object>
<script id="script" language="javascript" type="text/javascript" src="ANIMATOR_14-12-29.js">
//содержит функции обработки графики
</script>
<script id="script" language="javascript" type="text/javascript">
function LoadFile()
{
var infile = document.querySelector('input[type=file]').files[0];
var elm = document.querySelectorAll('.Shema')[0];
if(elm.data != undefined) elm.data=infile.name;
alert(' == Анимация? ==\n'+elm.data);
//без задержки загрузка не происходит
document.getElementsByTagName('object')[0].addEventListener("load", ANIMATION(elm.contentDocument), false);
}
</script>
</body>
</html>
Уже голову просто сломал. Что я тут не понимаю? Как запустить обработчик ANIMATION(...) точно после завершения загрузки файла?
|