В настоящее время я разрабатываю приложение HTML5 Canvas и использую Image Uploader, чтобы пользователи могли загружать локальные изображения на сервер, а затем изменять изображение на холсте (поскольку ряд манипуляций с внешними источниками даст вам исключение безопасности).
У меня есть несколько JS, которые выглядят примерно так:
<script type="text/javscript">
var editImage = new Image; // Global scope; not in a function
function setupCanvas() {}
</script>
Как только изображение успешно загружено, я отображаю что-то вроде этого:
echo '
<script type="text/javascript">
alert("'.$upload_image.'");
window.editImage=new Image();
window.editImage.src=\''.$upload_image.'\';
alert(window.editImage.src);
setupCanvas();
</script>'
Теперьвывод, который я получаю из операторов alert () - это $ upload_image.Но когда я проверяю FireBug, он говорит, что var editImage, который я объявил GLOBALLY в отдельном скрипте, все еще является ОРИГИНАЛЬНЫМ источником изображения, а не $ upload_image.Кроме того, он скажет, что вызванный мной метод setupCanvas () будет НЕ УКАЗАН, хотя он находится в ГЛОБАЛЬНОЙ области видимости.
Я предполагаю, что когда я делаю это с PHP, должны быть некоторые проблемы с областью действия - есть ли способ обойти это?