window.open arroja argumento no válido en IE7-8-9b

No sé lo suficiente sobre javascript para descubrir por qué la línea de este script que comienza con "window.open …" arroja un error de argumento no válido en IE7-8-9b. Funciona bien en Firefox y Webkit.

(El script se envuelve con un onclick="share.fb()" en un enlace html y aparece una nueva window del browser para compartir en FB y Twitter).

 var share = { fb:function(title,url) { this.share('http://www.facebook.com/sharer.php?u=##URL##&t=##TITLE##',title,url); }, tw:function(title,url) { this.share('http://twitter.com/home?status=##URL##+##TITLE##',title,url); }, share:function(tpl,title,url) { if(!url) url = encodeURIComponent(window.location); if(!title) title = encodeURIComponent(document.title); tpl = tpl.replace("##URL##",url); tpl = tpl.replace("##TITLE##",title); window.open(tpl,"sharewindow"+tpl.substr(6,15),"width=640,height=480"); } }; 

One Solution collect form web for “window.open arroja argumento no válido en IE7-8-9b”

IE no permite espacios ni otros caracteres especiales en el nombre de la window (el segundo argumento). Debe eliminarlos antes de pasar como argumento.

Reemplazar

 "sharewindow"+tpl.substr(6,15) 

por

 "sharewindow"+tpl.substr(6,15).replace(/\W*/g, '') 

para que termines con

 window.open(tpl,"sharewindow"+tpl.substr(6,15).replace(/\W*/g, ''),"width=640,height=480"); 

(Eso es básicamente un reemploop de expresiones regulares que dice "reemplaza cada secuencia de carácter no aplético por nada")

Demostración en vivo aquí (configure si es necesario su bloqueador de pop-ups)

  • Eventos de drag and drop HTML5: dragDejar los incendios antes de soltar
  • Disminuya la frecuencia de las consultas de events de Javascript
  • javascript eventemitter events múltiples una vez
  • Usar .on () y e.stopPropagation () en elementos dynamics
  • Llamando manualmente a document.ready
  • Obtener valor de seleccionar (menu desplegable) antes del cambio
  • no puede get las properties del evento touchstart?
  • ¿Cómo asignar el valor vacío para seleccionar el menu desplegable?
  • Error de Javascript IE: 'objective' es nulo o no es un object
  • Bootstrap Popover funciona después de un clic - JavaScript
  • javascript \ "\ 'im confundido
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.