elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Cambiar atributo "TYPE" de tag <object> en HTML con JS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cambiar atributo "TYPE" de tag <object> en HTML con JS  (Leído 4,249 veces)
Wari

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Cambiar atributo "TYPE" de tag <object> en HTML con JS
« en: 22 Octubre 2014, 14:48 pm »

Buen día!

Les presento mi siguiente problema:

Tengo una página HTML la cual contiene un <object> que va cargando dinámicamente distintas imágenes de tipo PDF, les mostraré una parte de mi código:

Tag Object:

Código
  1. <object id="imagen" name="imagen" data="" type="application/pdf" width="850px" height="500px">
  2. alt : <a href="">documento</a>
  3. </object>

El atributo "HREF" y "DATA" los cargo dinamicamente con variables en javascript basados en una función que se ejecuta al presionar un botón, la acción que realiza el cambio es la siguiente:

Código
  1. $("#imagen").attr('href','http://192.168.1.38:8080/share/proxy/alfresco/api/node/content/'+arDocumento[x]+'')

Hasta ahí todo bien.

El problema es que necesito cambiar dinamicamente el "TYPE" de <object> para poder cargar documentos de distinta extension (word, imagen, etc.) y no sólo PDF.

Probé utilizando el mismo método:

Código
  1. $("#imagen").attr('type',arTipoDato[x]);

Pero por alguna razón no funciona.

Notas: El método en sí funciona (asignar el valor a TYPE con una variable), ya que probé con un "alert" obtener el TYPE después de modificarlo:

Código
  1. alert($("#imagen").attr('type'));

Y me entrega correctamente el tipo de dato que voy asignando. El problema es que la imagen no se muestra a pesar de asignarle el type correcto.

Probé así también:

Código
  1. $("#imagen").attr('type','application/pdf');

Y a pesar de que si se asigna el valor, la imagen o documento no se muestra. Sólo lo hace correctamente si asigno el TYPE desde el html directamente.

¿Alguna idea?

Saludos


En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #1 en: 22 Octubre 2014, 15:36 pm »

Probablemente tendrás que crear dinámicamente un <object> nuevo con el type que necesites.


En línea

Wari

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #2 en: 22 Octubre 2014, 19:58 pm »

Gracias por responder!

Creo que eso apuntaría a una posible solución.

De todas formas me surge otro problema, y es que no logro visualizar los documentos de tipo DOCX o DOC, he probado aplicando el TYPE "application/msword" o application/vnd.openxmlformats-officedocument.wordprocessingml.document pero no se visualiza nada.

¿Alguna idea?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #3 en: 22 Octubre 2014, 20:10 pm »

Creo que para eso va a depender si tu navegador puede interpretar ese mime type en especifico. ¿Lo has probado desde Internet Explorer? No estoy muy seguro de que hace la subetiqueta type pero lo mas probable es que simplemente haga un override de la respuesta content-type del servidor.
En línea

Wari

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #4 en: 22 Octubre 2014, 21:48 pm »

Sí, he probado en Chrome e IE obteniendo el mismo resultado  :-[
En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.615



Ver Perfil WWW
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #5 en: 24 Octubre 2014, 07:15 am »

Gracias por responder!

Creo que eso apuntaría a una posible solución.

De todas formas me surge otro problema, y es que no logro visualizar los documentos de tipo DOCX o DOC, he probado aplicando el TYPE "application/msword" o application/vnd.openxmlformats-officedocument.wordprocessingml.document pero no se visualiza nada.

¿Alguna idea?

Acaso eso es posible? Que yo sepa no hay ninguna forma de abrir Word/Excel/Etc en tu navegador.
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #6 en: 24 Octubre 2014, 15:45 pm »

http://api.jquery.com/prop/

Citar
Note: Attempting to change the type property (or attribute) of an input element created via HTML or already in an HTML document will result in an error being thrown by Internet Explorer 6, 7, or 8.

Ve si te funciona

Código
  1. $("#id").prop('type'); // asi lo obtienes
  2. $("#id").prop('type',valor); // asi lo cambias
  3.  

No lo he probado, pero si he usado la funcion prop pero no para un caso como el tuyo, espero que te sirva, saludos.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Cambiar atributo "TYPE" de tag <object> en HTML con JS
« Respuesta #7 en: 24 Octubre 2014, 16:28 pm »

Acaso eso es posible? Que yo sepa no hay ninguna forma de abrir Word/Excel/Etc en tu navegador.


No estoy seguro de las nuevas instancias de I.E. y Word pero si se ha podido hacer eso en un pasado:

http://shaunakelly.com/word/sharing/opendocinie.html
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines