Comment pouvez-vous passer JSON objet de paramètres d'option pour ouvrir une nouvelle fenêtre?

StackOverflow https://stackoverflow.com/questions/2420410

  •  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

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top