Tengo un sitio que tiene un problema solo con IE8:
El codigo es:
var w = window.open(urlstring, wname, wfeatures, 'false');
El error es:
Mensaje: argumento no válido.
Línea: 419 Char: 5
Código: 0
URI: http: //HOSTNAME/js_context.js
He confirmado el número de línea del código (la "Línea" y el "URI" son correctos) y entiendo que en versiones posteriores de IE8, esto se considera correcto.
He verificado todos los parámetros entrantes en la llamada volcando alertas, y todos parecen válidos.
Este problema no ocurre en FF (probablemente 3).
ACTUALIZAR:
El problema parece estar en usar la asignación del resultado de window.open () al hacer "var w". Cuando divido la línea en dos declaraciones, funciona en IE8.
ACTUALIZACIÓN2:
Residencia en:
http://javascript.crockford.com/code.html
Cuando una función debe invocarse inmediatamente, toda la expresión de invocación debe estar envuelta en parens para que quede claro que el valor que se produce es el resultado de la función y no la función en sí.
Esto no es exactamente lo que está sucediendo aquí, pero descubrí que aplicar el principio resolvió el problema, en el modo de compatibilidad de IE8.
var w = (window.open(urlstring, wname, wfeatures, false));
Respuestas:
Esta es una publicación antigua, pero tal vez aún sea útil para alguien.
Tuve el mismo mensaje de error. Al final, el problema fue un nombre no válido para el segundo argumento, es decir, tenía una línea como:
El problema era "un título de ventana", ya que no es válido. Funcionó bien con la siguiente línea:
De hecho, leyendo con atención me di cuenta de que Microsoft no admite un
name
segundo argumento. Cuando miras la página de documentación oficial , ves que Microsoft solo permite los siguientes argumentos, si es que usas ese argumento:fuente
IE es exigente con el argumento del nombre de la ventana. No le gustan los espacios, guiones u otros signos de puntuación.
fuente
Cuando llama
window.open
a IE, el segundo argumento (nombre de la ventana) tiene que ser una de las cadenas de destino predefinidas o una cadena, que tiene la forma de un identificador válido en JavaScript.Entonces, lo que funciona en Firefox: "Job Directory 9463460", no funciona en Internet Exploder y debe ser reemplazado por: "Job_Directory_9463460" por ejemplo (sin espacios, sin signos menos, sin puntos, tiene que ser un identificador válido) .
fuente
el problema podría ser el wname, intente usar uno de los que se muestran en el enlace anterior, cito:
si usa otro wname, window.open no se ejecutará ...
fuente
En realidad, se puede usar un nombre, pero no puede tener espacios, por lo que
window.open("../myPage","MyWindows",...)
debería funcionar sin problemas ( window.open ).fuente
También me encuentro con este problema mientras usé el siguiente código:
pero cuando elimino el espacio en blanco del "Título de la ventana", el siguiente código está funcionando:
fuente
Hola, usando el siguiente código está funcionando ...
Anteriormente entré como
Significa que Microsoft no le permite ingresar el nombre de la ventana, debe estar en blanco en la
window.open
función ...Gracias, Nilesh Pangul
fuente
Para mí, el problema fue con un guión "-" en el campo del nombre de la ventana. Eliminé los guiones e IE no muestra errores y, de hecho, abre la ventana.
fuente
¿Qué representa la posición cuatro, la que tiene 'falso' como valor? ¿No debería ser falso (es decir, sin comillas?). Es posible que las versiones anteriores de IE forzaran la cadena a un booleano, pero las más nuevas no.
fuente
Las respuestas aquí son correctas en el sentido de que IE no admite espacios al configurar el título en window.open (), ninguno parece ofrecer una solución.
Eliminé el título de mi llamada window.open (puede usar null o ''), y luego agregué lo siguiente a la página que se está abriendo:
No es ideal de ninguna manera, pero esto le permitirá establecer el título como desee en todos los navegadores.
fuente
Intente eliminar el último argumento. Aparte de eso, asegúrese de que existan urlstring, wname y wfeatures.
fuente
Descubrí el mismo problema y después de leer la primera respuesta que supuso que el problema es causado por el nombre de la ventana, lo cambié: primero a '_blank', que funcionó bien (tanto la compatibilidad como la vista normal), luego al valor anterior, solo menos el espacio en el valor :) - también funcionó. En mi opinión, el problema (o parte de él) se debe a que IE no puede usar un valor de cadena normal como wname. Espero que esto ayude si alguien se encuentra con el mismo problema.
fuente
Si desea usar el nombre de la nueva ventana, etc., publicando un formulario en esta ventana, entonces la solución, que funciona en IE, FF, Chrome:
fuente
Parece que cuando incluso se usa un nombre de ventana personalizado "válido" (no _blank, etc.) usando window.open para abrir una nueva ventana, todavía hay problemas. Funciona bien la primera vez que hace clic en el enlace, pero si vuelve a hacer clic en él (con la primera ventana abierta todavía abierta), recibirá un error de depuración del script "Error: No se admite dicha interfaz".
fuente