мой скрипт пытается аплоадить файлы в этот input
<div class="goog-ws-bottom" xmlns="http://www.w3.org/1999/xhtml">
<div id="COMP_page-subpages" style=""> </div>
<div id="COMP_page-attachments" class="" style="">
<div id="goog-attachment-wrapper">
<h3 id="goog-attachment-header">
</h3>
<div style="" jotid="goog-attachment-inner">
<ul id="JOT_ATTACH_container">
</ul>
<form id="sites-attachment-form" class="goog-ws-attachment-form" enctype="multipart/form-data" method="post">
<p>
Приложить файл:
<input type="file" contenteditable="false" onchange="return JOT_ATTACH_handleUploadXfer()" name="userfile" onclick="this.blur()"/>
<input type="hidden" value="/Home" name="pagePath"/>
</p>
</form>
</div>
</div>
</div>
вот сам скрипт (скрипт входит в состав аддона мозилы):
const nsIFilePicker = Components.interfaces.nsIFilePicker;
var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
function SelectFiles()
{
var files = [];
filePicker.init(window, "Select files to upload", nsIFilePicker.modeOpenMultiple);
var rc = filePicker.show();
if (rc == nsIFilePicker.returnOK)
{
var picked = filePicker.files;
while(picked.hasMoreElements())
{
var aFile = picked.getNext();
aFile.QueryInterface(Components.interfaces.nsIFile);
files.push(aFile.path);
}
}
return files;
}
var uploader = {};
uploader.files = [];
uploader.index = 0;
uploader.iframe = null;
uploader.GetBrowser = function()
{
return document.getElementById("pages-frame");
}
uploader.CheckIfUploadFormAvailable = function()
{
var browser = uploader.GetBrowser();
var available = ("file" == browser.contentDocument.forms[0].elements[0].type);
return available;
}
uploader.SetIframeOnloadListener = function()
{
var browser = uploader.GetBrowser();
var iframeDiv = browser.contentDocument.getElementById("tr_upload-form-div");
uploader.iframe = iframeDiv.getElementsByTagName("iframe")[0];
uploader.iframe.addEventListener("load", uploader, false);
}
uploader.RemoveIframeOnloadListener = function()
{
uploader.iframe.removeEventListener("load", uploader, false);
}
uploader.UploadNext = function()
{
var index = uploader.index;
if (index < uploader.files.length)
{
var browser = uploader.GetBrowser();
var form = browser.contentDocument.forms[0];
var input = form.elements[0];
input.value = uploader.files[index];
[B]form.submit();[/B] // Здесь пытаюсь сабмитить форму - но не получается - строка с путем к файлу появляется, но сабмитить не получается
var box = document.getElementById("file-upload-area");
box.childNodes[index].checked = true;
}
uploader.index++;
var pending = (uploader.index <= uploader.files.length);
return pending;
}
uploader.UploadFiles = function(files)
{
uploader.files = files;
uploader.index = 0;
if (files.length)
{
uploader.SetIframeOnloadListener();
uploader.UploadNext();
}
}
uploader.handleEvent = function(ev)
{
if (ev.type == "load")
{
var pending = uploader.UploadNext();
var browser = uploader.GetBrowser();
if (!pending)
{
var progress = document.getElementById("progress-bar");
progress.parentNode.removeChild(progress);
uploader.RemoveIframeOnloadListener();
browser.contentDocument.forms[0].reset();
// Dumb thing to avoid a POSTDATA prompt
browser.goHome();
}
}
};
function GetFiles()
{
if (!uploader.CheckIfUploadFormAvailable())
{
alert("Please, click on the \"[upload]\" link of the Uploaded Stuff widget and press again this button.");
}
else
{
var files = SelectFiles();
var box = document.getElementById("file-upload-area");
while (box.firstChild)
{
box.removeChild(box.firstChild);
}
var checkbox;
for (var ii=0; ii < files.length; ii++)
{
checkbox = document.createElement("checkbox");
checkbox.setAttribute("label", files[ii]);
checkbox.setAttribute("disabled", true);
box.appendChild(checkbox);
}
if (files.length)
{
var progress = document.createElement("progressmeter");
progress.setAttribute("mode", "undetermined");
progress.setAttribute("id", "progress-bar");
box.appendChild(progress);
uploader.UploadFiles(files);
}
}
}
у меня не получается просабмитить input
<input type="file" contenteditable="false" onchange="return JOT_ATTACH_handleUploadXfer()" name="userfile" onclick="this.blur()"/>
потому что ха ним следует
<input type="hidden" value="/Home" name="pagePath"/>
указывающий на путь в папку сервера
но если пытаюсь просабмитить в любой другой input на стринце - не содержащий <input type="hidden" value="/Home" name="pagePath"/> подобные приколы - то событие проходит
помогите пожалуйста!
мне необходимо передать в
<input type="file" contenteditable="false" onchange="return JOT_ATTACH_handleUploadXfer()" name="userfile" onclick="this.blur()"/>
<input type="hidden" value="/Home" name="pagePath"/>
стринг - содержащий путь к файлу