Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ASP > ASP.NET, <INPUT type=file> и JavaScript .click()


Автор: iAlexander.NET 19.7.2004, 09:45
Ув. господа!
Не получается вроде простая вещь, может кто знает.
***** КОНТЕКСТ
ТЕМА: Редактор HTML в виде web формы ASP.NET.
ЗАДАЧА: Графическая web кнопочка "Вставить картинку" (на панели инструментов) id), которая (JScript) открывает окно выбора gif, jpeg на клиенте, после выбора аплоадит в нужную папку на веб сервер и отображает ее в редакторе (внутри <DIV></DIV>) -- execCommand("InsertImage",false,sPath);

ПРОБЛЕМА: Из JScript не работает метод click на кнопке, которая вызывает post web формы на сервер. Если кликать мышкой ручками на <input type=file id="fileUpload"> [Browse] и затем на кнопке, например <asp:Button id="btnSave" runat="server" Text="Save"></asp:Button>, то все ок. Загружает все нормально.
А если из JScript, то валится на btnSave.click с ошибкой access denined.
fileUpload.click() работает, а btnSave.click() нет. В MSDN про эту ошибку только что у JScript тормоза при доступе в неродной домен.
Пробовал по-разному реализовывать кнопку постинга, просто frm.submit() все одно.
Просто абзац какой-то.
******** На всякий случай куски кода
<script language="JScript">
frm.fileUpload.click();
if(frm.fileUpload.contains) // есть объект ?
{
frm.btnSave.click(); // Вот здесь валится access denined (из JavaScript /JScript/ в IE)
var sPath=document.all("tfServerResponce").value;
// тащим URL картинки на сервере
document.execCommand("InsertImage",false,sPath);
// ну и добавляем
}
</SCRIPT>

Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
If Not fileUpload.PostedFile Is Nothing And fileUpload.PostedFile.ContentLength > 0 Then
Dim sFileName As String = System.IO.Path.GetFileName(fileUpload.PostedFile.FileName)
Dim sPath As String = "d:\inetpub\wwwroot\KnowledgeBase\data\image\" & sFileName
Dim sUrl As String = "http://star/knowledgebase/data/image/" & sFileName
Try
fileUpload.PostedFile.SaveAs(sPath)
'tfServerResponce.Value = sUrl
Catch ee As Exception
'tfServerResponce.Value = "error"
End Try
End If
End Sub

Автор: Kurt 19.7.2004, 22:41
Честно говоря, JScript толком не юзал, однако вот прям сейчас сделал туповатую формочку с кнопкой и "нажал" из JScript.
Хорошо бы более подробно посмотреть на исходники (если это возможно..) - так толком ничего сказать не могу. Может, ты основной кусок (где такие вещи творятся) где-нибудь выложить можешь?
Хотя.. можь, кто-нибудь сообразит.. Как я уже говорил, я не спец в JScript.

З.Ы. Вопросы по ASP.NET задаются в разделе .NET. wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)