Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: document.getElementById('captcha').src в ИЕ опере не срабатывает
 
 автор: Саша   (12.10.2008 в 23:15)   письмо автору
 
 

Добрый вечер

Такая проблема, код работает только в фаерфоксе, Он должен динамически обновлять кептчу, но не обновляет, и ошибок не выдает, в чем может быть дело?

...
<td >
<img id="captcha" src="/captcha/img.html"><br>
<a href="#" onclick="document.getElementById('captcha').src = '/captcha/img.html?r='+Math.random();return false;">reload image</a>
</td>
</tr>
....

  Ответить  
 
 автор: PAT   (12.10.2008 в 23:26)   письмо автору
 
   для: Саша   (12.10.2008 в 23:15)
 

Страная у вас каптча какая-то... вроде картинка... расширение у картинки
должно быть GIF, JPG, на худой конец - PNG... или вовсе BMP (only Explorer)...
а у вас - HTML... ?!?!?

Не здесь ли собака порылась?

  Ответить  
 
 автор: Саша   (12.10.2008 в 23:28)   письмо автору
 
   для: PAT   (12.10.2008 в 23:26)
 

за таким адресом скрипт гинерит картинку. Повторюсь, в фаерфоксе работает!!!

  Ответить  
 
 автор: PAT   (13.10.2008 в 01:49)   письмо автору
 
   для: Саша   (12.10.2008 в 23:28)
 

А я тоже повторюсь: с нормальной картинкой работает ВЕЗДЕ.

Можете удостовериться здесь - специально для вас только что залил.

  Ответить  
 
 автор: sim5   (13.10.2008 в 08:41)   письмо автору
 
   для: PAT   (13.10.2008 в 01:49)
 

Может работать модреврайт, и тогда хоть к господу обращайся.)

  Ответить  
 
 автор: Саша   (13.10.2008 в 20:21)   письмо автору
 
   для: sim5   (13.10.2008 в 08:41)
 

ПАТ
чесно говоря, или я вас не понял или вы меня. Картинка работает и отображается, но когда я нажимаю на релоад картинка не меняется, хотя должна, в firefox ра ботает так как надо, но в ие и опере нет

  Ответить  
 
 автор: Николай2357   (13.10.2008 в 20:58)   письмо автору
 
   для: Саша   (13.10.2008 в 20:21)
 

У меня была однажды такая проблема, но это оказалось "индивидуальностью" моего ослика. Он переставал реагировать на JS из ссылки, когда в адресной строке появлялось вот эта бяка # Попробуйте вообще без нее, кто знает...

  Ответить  
 
 автор: Nytrogen   (13.10.2008 в 21:57)   письмо автору
 
   для: Николай2357   (13.10.2008 в 20:58)
 

>> когда в адресной строке появлялось вот эта бяка #

Ваша бяка появлялась из-за того, что у вас она в href'е написана... Во-первых, если пустое значение там оставить, то ссылка будет открывать текущую папку, а во-вторых, вместо # лучше использовать javascript: void(0);, так как href=# всегда будет ссылаться на начало страницы, прокручивая её до самого верху.

  Ответить  
 
 автор: Николай2357   (13.10.2008 в 22:55)   письмо автору
 
   для: Nytrogen   (13.10.2008 в 21:57)
 

Эта бака не у меня, а у автора топика в хрефе написана. я просто вспомнил, что такая у меня проблема была.

>Во-первых, если пустое значение там оставить, то ссылка будет открывать текущую папку,
ничего она открывать не будет

>так как href=# всегда будет ссылаться на начало страницы, прокручивая её до самого верху.
и никуда ссылаться не будет, и прокручивать тоже не будет. Вообще ничего не будет, так как ей все запретили и сказали низззя. (событие прервано return false).
Я почему написал - мало ли. Я тоже мучался, пока не выяснил, что это только конкретно мой осел так ведет себя. Другие нормально работали.

  Ответить  
 
 автор: Nytrogen   (13.10.2008 в 23:08)   письмо автору
 
   для: Николай2357   (13.10.2008 в 22:55)
 

ОК, я подразумевал, что в onclick ничего не написано.

  Ответить  
 
 автор: PAT   (13.10.2008 в 22:04)   письмо автору
 
   для: Саша   (13.10.2008 в 20:21)
 

По тому же адресу смотрите измененный код.
SRC картинки - это php-файл, код которого приведён.
Всё работает.

  Ответить  
 
 автор: Саша   (16.10.2008 в 00:01)   письмо автору
 
   для: PAT   (13.10.2008 в 22:04)
 

PAT
Отдельное спасибо , что потрудились написать и выложить код.

Да, Ваш код работает. Но мой все таки нет.
вот как генерится картинка (там клас, просто снял те части которые важны)

        $this->img_obj = imagecreate(90,80);
        imagecolorallocate($this->img_obj,255,255,255);
        $colors[] = imagecolorallocate($this->img_obj,12,33,156);
        $colors[] = imagecolorallocate($this->img_obj,12,156,87);
        $colors[] = imagecolorallocate($this->img_obj,156,148,12);
        $colors[] = imagecolorallocate($this->img_obj,156,36,12);
        $colors[] = imagecolorallocate($this->img_obj,220,14,23);
        $this->color = $colors[rand(0,count($colors)-1)];
        $this->color2 = imagecolorallocate($this->img_obj,rand(100,220),rand(100,220),rand(100,220));

// ...
// ТУТ ПРОЦЕС ФОРМИРОВАНИЯ КАРТИНКИ, ОН ПРОПУЩЕН
// ...
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
        header('Cache-Control: no-store, no-cache, must-revalidate'); 
        header('Cache-Control: post-check=0, pre-check=0', FALSE); 
        header('Pragma: no-cache');
        
        if(function_exists("imagegif")){
            header("Content-Type: image/gif");
            imagejpeg($this->img_obj);
        } else if(function_exists("imagejpeg")){
            header("Content-Type: image/jpeg");
            imagegif($this->img_obj);
        } else if(function_exists("imagepng")){
            header("Content-Type: image/x-png");
            imagepng($this->img_obj);
        }


Может тут косяк? Хотя...

И еще одно, переботаный код
<tr>
<td></td>
<td >
<img id="captcha" src="/captcha/img.php"><br>
<a href="" onclick="document.getElementById('captcha').src = '/captcha/img.php?r='+Math.random();return false;">reload image</a>
</td>
</tr>


Я вот думаю, может просто експолерер не может записать в то место src, так как оно только для чтения?

  Ответить  
 
 автор: PAT   (16.10.2008 в 01:30)   письмо автору
 
   для: Саша   (16.10.2008 в 00:01)
 

Трудно судить.

Начните с того, что просто загрузите картинку в браузер, т.е.
в адресной строке браузера пропишите сначала
http://путь_к_файлу_img.php?r=0.123456789 (набор цифр от балды)
а потом
http://путь_к_файлу_img.php?r=0.987654321 (также с потолка, но отличный от первого варианта)
и посмотрите - выдаст ли вам браузер ваши картинки.

Если выдаст, то тогда создайте простенький html-файл с двумя тегами <IMG>:
<html>
<body>
<img src="http://путь_к_файлу_img.php?r=0.123456789">
<hr>
<img src="http://путь_к_файлу_img.php?r=0.987654321">
</body>
</html>
и проверьте его визуально в разных браузерах.

Если и тогда всё будет OK, то тогда я вам ничем помочь не смогу.

Однако, подозреваю, что в процессе выполнения вышенаписанного вы столкнётесь с тем, что какой-то из четырёх картинок не увидите... И, следовательно, вам придётся искать ошибку в вашем PHP-коде.

  Ответить  
 
 автор: Саша   (16.10.2008 в 12:24)   письмо автору
 
   для: PAT   (16.10.2008 в 01:30)
 

Все это я сделал, и оно работает в всех браузерах. Но джаваскрыпт не работает. Еще я сделал


alert(document.getElementById('captcha').src);

так вот в експлорере он выдает пустую строчку, у всех остыльных полный путь к картинке, после присвоения нового адреса в document.getElementById('captcha').src выдается тот адрес, который был занесен, но в браузере ие остается старый рисунок, в опере и фф все нормально работает.

  Ответить  
 
 автор: PAT   (16.10.2008 в 12:31)   письмо автору
 
   для: Саша   (16.10.2008 в 12:24)
 

Ага... подвижка уже есть - в OPERA теперь работает, хотя в самом начале вы уверяли, что только и исключительно в FireFox работоспособно.

В общем, как я понимаю, проблемы, как таковой, нет и не было.
Ибо чудес не бывает - не может этот простейший код не работать там, где он работать обязан.
Была какая-то глупая ошибка с вашей стороны, признать которую вы принципиально не в состоянии.


В общем... птицу "петух" знаете?
Идите и пачкайте мозги этой самой птице, а не нам здесь.

  Ответить  
 
 автор: Саша   (16.10.2008 в 13:39)   письмо автору
 
   для: PAT   (16.10.2008 в 12:31)
 

в опере заработало так как я обновил к последней версии

а код не работает на ие . Тестил на 3 разных кампах, в ие - НЕРАБОТАЕТ.

У ж извините, если сильно запачкал вам мозги.

  Ответить  
 
 автор: PAT   (16.10.2008 в 13:47)   письмо автору
 
   для: Саша   (16.10.2008 в 13:39)
 

Дайте линк - проверю и я на своём компе.
Подивлюсь на ЧУДО, работающее в FF и OPERA, но не работающее в IE

  Ответить  
 
 автор: Саша   (16.10.2008 в 14:02)   письмо автору
 
   для: PAT   (16.10.2008 в 13:47)
 

Так вот, проблема решилась таким образом


<img id="captcha" src="/captcha/img.php"><br>
<a href="" onclick="document.images.captcha.src = '/captcha/img.php?'+Math.random();return false;">reload image</a>


Выходит в експлорере просто этот ид был только для чтения, скорее всего,
до конца проблему я так и не понял

Всем спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования