¿Cómo se puede pasar un Objeto JSON de parámetros de opción para abrir una ventana nueva?
-
19-09-2019 - |
Pregunta
la ventana.open() del objeto tiene algo de funky lista de parámetros...
hay una manera de hacer algo como ventana.abierta({opciones..});
Los pensamientos?
Solución
No hay tal instalación incorporada a la lengua.
Sin embargo, es bastante fácil de escribir uno usted mismo.
Por ejemplo:
function popup(url, name, options) {
if (arguments.length === 2) {
options = name;
name = options.name;
}
var features = false;
for (var key in options) {
if (!options.hasOwnProperty(key)) continue;
if (key === "name") continue;
if(features)
features += ",";
features += key + "=";
if (!options[key])
features += "no";
else if (options[key] === true)
features += "yes";
else
features += options[key];
}
return window.open(url, name, features);
}
Otros consejos
así
function newWindow(options) {
var opts = [], keys = ['height', 'width', 'scrollable', /* all those options */];
for (var i = 0; i < keys.length; ++i) {
if (keys[i] in options)
opts.push(keys[i] + '=' + options[keys[i]]);
}
return window.open(options.url, options.name, opts.join(','));
}
Se podía pasar options
como un parámetro URL:
window.open( myURL + "/?options=" + JSON.stringify(options) );
No. Esa es una función llamada dom con javascript.
En cualquier caso, la estrategia de 'objeto opciones', realmente está entrando en tan gran uso con el concepto de JSON, que precede a las especificaciones DOM por algún tiempo.
Se puede construir un objeto JS con los campos para los parámetros y anular toString () si desea que un ayudante ventana de apertura.
No, pero usted puede escribir su propio envoltorio con bastante facilidad.
Yo no lo creo como las características son una lista separada por comas de las características de la ventana
Desde MDC
var WindowObjectReference = window.open(strUrl,
strWindowName
[, strWindowFeatures]);
No hay nada que le para de escribir un envoltorio sin embargo, que acepta un objeto y luego llama window.open()
con los argumentos adecuados
usted puede hacer su propia función para analizar un objeto JSON y llamar a la ventana.función open() con los parámetros específicos basados en el análisis?