Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   очень сложный вопрос по js (http://forum.oszone.net/showthread.php?t=46206)

E-mail 03-03-2005 23:02 303343

очень сложный вопрос по js
 
существует сайт, я видел, но потерял линк...(
где при перетаскивании значков с рабочего стола например в окно браузера происходит автоматический аплоид на сервер!
я хочу посоветоваться какбы такоеже можно сотворить с помощью чего?
java script?

покопал в сторону dhtml нажел атрибут ondragover

...
какие есть советы?

Vlad Drakula 03-03-2005 23:11 303345

E-mail
ну... я думаю что это удобнее делать на флеше.

Prisoner 04-03-2005 10:22 303449

Тут два варианта:
1) Есть форма с диалогом выбора файла (поле type="file"). Если описать обработчик события onDrop (когда пользователь отпускает кнопку мыши, завершая операцию drag-n-drop, в элементе-цели), можно сабмитить форму автоматом. Просто, дело в том, что input'а с type="file" свойство value - readonly.
2) Цель drag-n-drop'а может быть какой угодно, но т.к. формы нет, то придется формировать запрос вида post самостоятельно (этап из варианта №1 когда сабмитится форма).
Еще стоит разобраться с данными события ondrop - какие они и каков их формат, это понадобится в обработчике.

vadimiron 04-03-2005 17:05 303580

ой, по-моему, легче без этого обойтись :) сделать обычную форму типа обзор-выбор и не мучаться

E-mail 04-03-2005 22:01 303667

Код:

BOOL CDlgAddDPath::OnInitDialog()

{

CDialog::OnInitDialog();

...

m_edPath.DragAcceptFiles();

}

class CDropFilesEdit1 : public CEdit {

public:

virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) {

if (message == WM_DROPFILES) {

HDROP hDropInfo = (HDROP)wParam;

UINT nFiles = ::-DragQueryFile(hDropInfo, (UINT)-1, NULL, 0);

for (UINT iFile = 0; iFile < nFiles; iFile++) {

char szFileName[MAX_PATH];

::-DragQueryFile(hDropInfo, iFile, szFileName, MAX_PATH);

SetWindowText(szFileName);

}

::-DragFinish(hDropInfo);

}

return CEdit::-DefWindowProc(message, wParam, lParam);

};

};

class CDlgAddDPath : public CDialog {

...

CDropFilesEdit1 m_edPath;

...

};

Это на VC.

на js надо разобраться как...

E-mail 04-03-2005 23:23 303684

в данный момент волнует как узнать адрес или хотябы тип аплоидного файла который перетаскиваем в окно(ondragenter)?

Prisoner 05-03-2005 10:45 303772

vadimiron, E-mail
А если почитать соответствующую статью, то можно не переживать так сильно :).

E-mail 05-03-2005 21:06 303905

Prisoner
не нашел ответа на вопрос...(
меня не волнует взаимосвязь с сервером, меня интересует работа на стороне клиента, после попадания передаскиваемого файла с рабочего стола на окно браузера должен высвечиваться адрес файла, в браузере на стороне клиента. как?

Prisoner 05-03-2005 23:20 303930

Где высвечиваться? Если в уже существующей форме (в поле file), то ничего не получится (см. выше). Если нет - то тут поможет msdn (чаще лишь отчасти :))

E-mail 05-03-2005 23:31 303933

Prisoner
да не обязательно в поле файл просто алерт обычный с именем файла хотябы

Prisoner 05-03-2005 23:36 303935

Тогда msdn.


Время: 14:17.

Время: 14:17.
© OSzone.net 2001-