Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скрипт закачки файлов 
V
    Опции темы
MoLeX
Дата 19.3.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Один товарищ скинул следующий скриптик (см. аттач). 
К сожелению он работает только в Осле (лису не проверял, в опере не работает), сам JS изучаю недавно и в чужом коде (особенно таком) быстро путаюсь и теряю нить расуждения, поэтому прошу помощь в оптимизации данного скиптика под браузеры.

 smile 

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  method_get.rar 19,61 Kb


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Nigel
Дата 19.3.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 1
Всего: 19



Скрипт нормальный, есть только небольшая проблемка со стилями.
Попробуй так
Код

<div _id='fileContainer' style='width:84px;height:32px;left:0px;direction:rtl;position:absolute;top:211px'>

А после
Код

this.fileContainer.appendChild(newInputFile);

поставь
Код

this.fileContainer.style.overflow='hidden';

Попробуй повозиться со стилями
Код

    var str = "<table style='background-color:#EDEEEF;border: 1px solid #7A7C80;' border='0'>" +
              "<tr><td style='width:420px' colspan=3 align='center' id = 'cellContainer' >" +
              "<div style='height:200px;'></div>" +
              "</td></tr>" +
              "<tr><td style=';width: 80px; height: 32px;' align='left'></td>" +
              "<td style='width: 200px; height: 32px;' align='left'>" +
              "<img _onclick='UploadControl.prototype.uploadAllItems()' _ID='ImageButton3'  src='imgs/btn_upload.gif' style='cursor:pointer'/></td>" +
              "<td style='width: 140px; height: 32px;' align='right'>" +
              "<img _onclick='return UploadControl.prototype.removeAllItems()' _ID='ImageButton3'  src='imgs/btn_clean.gif' style='cursor:pointer;margin-right:20px'/></td></tr></table>" +

              "<div _id='fileContainer' style='width:84px;height:32px;left:0px;direction:rtl;position:absolute;top:211px'>" +
              "<img style='z-index:2' src='imgs/btn_add.gif'/>" +
              "<input type='file' id='file1'  name='file1' value='' class='hidden' style='cursor:pointer;z-index:3;left:7px;position:absolute;height:25px;top:0px'/></div>";

alert(str);

Ну, или, на крайний случай, в зависимости от браузера меняй нужные значения.

PM MAIL   Вверх
ksnk
Дата 20.3.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



MoLeX
В опере оно тоже работает ;-) Только нужно ткнуть чуть-чуть слева от кнопки, потом нажать на tab и пробел.... smile 

Надо бы погуглить примеры на имитацию input:file с помощью div'ов... Как-то ведь и в Опере такое работало...

Еще опера не знает что такое overflow-y и при большом списке загружаемых файлов имеет забавный эффект...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 20.3.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Строка 57 файла dhtmlXVault.js Для Оперы нужно заменить left:7px на right:0. Кнопачка от загрузчика будет как раз на месте... Они там с другой стороны...
Код

    "<input type='file' id='file1'  name='file1' value='' class='hidden' style='cursor:pointer;z-index:3;position:absolute;height:25px;top:0px;"+
     (isOpera?'right:0;':'left:7px;')+
     "'/></div>";

еще в строке 40 замена overflow-y на overflow:auto+ overflow-x:hidden... - Опреа все равно ругается, но зато не глючит...
Код

    this.containerDiv.style.cssText = "position:absolute;overflow:auto;overflow-x:hidden;height:190px;background-color:#FFFFFF;border:1px solid #878E95;top:10px;left:10px;z-index:10;width:410px";


Ну и isOpera можно по бедности определить вот так
Код

var isOpera = /opera/i.test( navigator.userAgent);

или так 
Код

var isOpera = !!window.opera;


Это сообщение отредактировал(а) ksnk - 20.3.2008, 10:57


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
krundetz
Дата 8.4.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Посмотри вот здесь http://feeds.feedburner.com/~r/simplecodin...zka-fajlov.html
там приводиться пример с подробным разбором что и как.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.