In this code:
local_messages.prototype.send_attach_to_queue = function
(id_queue,form) {
for(i=0;i<form.elements.length;i++) {
if(form.elements[i].name.indexOf("file_")!=-1) {
var tmp_input = form.elements[i];
var d = new Date();
var url_local = 'local_attachs/'+d.getTime();
*this.store.captureFile(tmp_input, url_local);*
}
}
}
I assume that:
1. form is a dom element something like form = getElementById
(html_id_of_the_form_element)
2. code of this function is not complete because id_queue is not used
in this function
3. you have a form with many <input type="file"... elements and you
iterate across them and capture all files. If this is not the case and
you have only one file element, do directlu tmp_input = getElementById
(html_id_of_the_FILE_element);
What I would do to debug this problem:
1. First I do not think this is a gears problem, I think this is an IE
problem
2. I would remove all other code and test with a basic setup:
Let only one file element in form, put an id on it and do something
like:
local_messages.prototype.send_attach_to_queue = function
(id_queue,form) {
tmp_input = getElementById
(html_id_of_the_FILE_element);
var url_local = 'local_attachs/'test_file;
this.store.captureFile(tmp_input, url_local);
}
}
}
3. If this works, I would put back the the code, but using i as
dynamic url:
local_messages.prototype.send_attach_to_queue = function
(id_queue,form) {
for(i=0;i<form.elements.length;i++) {
if(form.elements[i].name.indexOf("file_")!=-1) {
var tmp_input = form.elements[i];
var url_local = 'local_attachs/'+i;
*this.store.captureFile(tmp_input, url_local);*
}
}
}
4. if this still works, means the getTime() is the problem. As I know
getTime() function can return object on IE on some cases instead of
float.
Hope this helps
Please correct me if any of my assumption are incorrect.
On May 6, 4:54 pm, Diogenes Duarte <[email protected]> wrote:
> sorry, I forgot to say that I call init_local_messages before I call
> send_attach_to_queue.
>
> 2009/5/6 Diogenes Duarte <[email protected]>
>
> > I can show you the code...
>
> > function local_messages() {
> > this.dbGears = null;
> > this.localServer = null;
> > this.store = null;
> > }
>
> > local_messages.prototype.init_local_messages = function(){
> > if(this.dbGears == null)
> > this.dbGears = google.gears.factory.create('beta.database');
> > if(this.localServer==null)
> > this.localServer =
> > google.gears.factory.create('beta.localserver');
> > if(this.store==null)
> > this.store = this.localServer.createStore('test-store');
> > }
>
> > local_messages.prototype.send_attach_to_queue = function(id_queue,form) {
> > for(i=0;i<form.elements.length;i++) {
> > if(form.elements[i].name.indexOf("file_")!=-1) {
> > var tmp_input = form.elements[i];
>
> > var d = new Date();
> > var url_local = 'local_attachs/'+d.getTime();
> > *this.store.captureFile(tmp_input, url_local);*
> > }
> > }
> > }
>
> > After bold line, on I.E, the app shows an alert with the message: "object
> > error". In firefox it works perfectly. I can't imagine why this is
> > happening... does anyone can see why?
>
> > I know the method is deprecated, but I can't change all my code to change
> > deprecated methods. at least, not now. we have plans for doing that in 2 or
> > 3 months, but, for now I really need the methods doing what they say they
> > do, even the deprecateds.
>
> > thanks for attention.
>
> > 2009/5/5 carise <[email protected]>
>
> >> Hi,
>
> >> Can you provide your code (especially the javascript)?
>
> >> On May 5, 6:10 am, Diogenes Duarte <[email protected]> wrote:
> >> > I have an app using captureFile method and it's working fine on firefox,
> >> but
> >> > crashes in I.E. It's the same code in both browsers, and in I.E shows an
> >> > alert that says: "Object Error". In the end, the function doesn't work.
>
> >> > Any idea why this is happening?
>
> >> > thanks for attention.