Comment pouvez-vous passer JSON objet de paramètres d'option pour ouvrir une nouvelle fenêtre?
-
19-09-2019 - |
Question
l'objet window.open () a une liste de paramètres ... froussard
est-il un moyen de faire quelque chose comme window.open ({..} les options);
Pensées
La solution
Il n'y a pas facilité intégré à la langue.
Cependant, il est assez facile d'écrire vous-même.
Par exemple:
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);
}
Autres conseils
bien
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(','));
}
Vous pouvez passer options
comme paramètre d'URL:
window.open( myURL + "/?options=" + JSON.stringify(options) );
Non. C'est une fonction appelée avec dom javascript.
Dans tous les cas, la stratégie des « options objet » est vraiment seulement venir dans une telle grande utilisation avec le concept de JSON, que les spec précède DOM par un certain temps.
Vous pouvez construire un objet JS avec des champs pour les paramètres et remplacer toString () si vous voulez une aide de l'ouvre-fenêtre.
Non, mais vous pouvez écrire votre propre emballage assez facilement.
Je ne pense pas que les caractéristiques sont une liste séparée par des virgules des caractéristiques de la fenêtre
De MDC
var WindowObjectReference = window.open(strUrl,
strWindowName
[, strWindowFeatures]);
Il n'y a rien qui vous empêche d'écrire un wrapper mais qui accepte un objet et appelle ensuite window.open()
avec les arguments appropriés
vous pouvez faire votre propre fonction pour analyser un objet JSON et appeler la fonction window.open () avec params spécifiques en fonction de l'analyse syntaxique?