PHP echo Вывод JavaScript - скрипт не имеет такой же области видимости - PullRequest
0 голосов
/ 18 декабря 2010

В настоящее время я разрабатываю приложение 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, должны быть некоторые проблемы с областью действия - есть ли способ обойти это?

Ответы [ 2 ]

1 голос
/ 18 декабря 2010

Извините, блок кода в комментариях был нечитабелен, вот как я его получил, работая с JUST javascript:

$(document).ready(function() {
   editImage=new Image(); 
   editImage.src='http://graffpic/uploads/fracture_1292689775.jpg'; 
   console.log(editImage.src); 
   setupCanvas();           
});

Единственная проблема в том, что когда я вывожу его с помощью PHP, он скажет, что $ UNDEFINED - так что это, скорее всего, проблема с загрузкой - может кто-нибудь дать мне немного больше информации об этом и что делать? Я МОЖЕТ импортировать библиотеку jQuery СНОВА, но это кажется неуклюжим; Либо это, либо я могу импортировать фрагмент кода, который необходим для $ (document) .ready (), что опять-таки довольно неуклюже. Любая помощь?

0 голосов
/ 18 декабря 2010

Ах! Я надеюсь, что это на самом деле ваша проблема тоже. Не просто опечатка в вашем посте, потому что я целую вечность чесал голову над кодом, основанным на вашем примере Это не просто, что ваш первый блок кода читает,

<script type="text/javscript">

Не

<script type="text/javascript">

это так? (Обратите внимание на отсутствующий «a» в «javascript» в первой строке.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...