Motivo desconocido para el error "Expected ':'" en javascript

Tengo la siguiente function definida en mi sitio. Funciona para algunas personas, no para otros. La exception ocurre en la última línea del método, donde está la concatenación. Creo que porque el carácter de interrogación de url que designa la cadena de consulta se está viendo como un operador ternario.

¿Hay algo aquí que no estoy viendo o hay una mejor manera de build esta cadena?

La variable url tiene un valor de: "mywebpage.aspx? AccountNumber = 123456"

function popUp(url) { var myleft = (screen.width) ? (screen.width - 750) / 2 : 100; var mytop = (screen.height) ? (screen.height - 300) / 2 : 100; var id = new Date().getTime(); eval("page" + id + " = window.open(" + url + ", '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=900,height=325, top='" + mytop + "',left='" + myleft +");"); } 

Eliminarás el problema de "presupuestos entre comillas" al evitar eval() :

 window["page" + id] = window.open(url, id, 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=900,height=325, top=' + mytop + ',left=' + myleft); 

También debe asegurarse de usar un valor "id" que sirva como un identificador válido (comienza con un carácter que no sea un dígito, específicamente) o, de lo contrario, Internet Explorer emitirá un error.

¿Has intentado poner comillas simples antes y después de cerrar y abrir comillas dobles alnetworkingedor de la variable url? Algo así como:

  ..." = window.open('" + url + "',... 

utilice encodeURIComponent(url) lugar de usar url puro en window.open

Esta function codifica caracteres especiales. Además, codifica los siguientes caracteres:, /? : @ & = + $ #

Más información aquí