Wie können Sie JSON-Objekt der Option Parameter übergeben ein neues Fenster zu öffnen?

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

  •  19-09-2019
  •  | 
  •  

Frage

die window.open () Objekt hat eine flippige Parameterliste ...

ist es eine Möglichkeit, so etwas wie window.open zu tun ({Optionen ..});

Die Gedanken?

War es hilfreich?

Lösung

Es gibt keine solche Anlage in die Sprache integriert.

Allerdings ist es ziemlich einfach, man selbst zu schreiben.
Zum Beispiel:

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);
}

Andere Tipps

gut

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(','));
}

Sie options als URL-Parameter übergeben können:

window.open( myURL + "/?options=" + JSON.stringify(options) );

Nein. Das ist eine dom-Funktion mit JavaScript genannt.

In jedem Fall ist die ‚Optionen Objekt‘ Strategie wirklich nur kommt in so großer Nutzung mit dem Konzept der JSON, die die DOM-Spezifikation vorausgeht durch einige Zeit.

Sie können ein JS-Objekt mit Feldern für die Parameter bauen und überschreiben toString (), wenn Sie einen Fensterheber Helfer wollen.

Nein, aber Sie könnten Ihre eigenen Wrapper leicht genug schreiben.

Das glaube ich nicht, um die Merkmale eine durch Kommata getrennte Liste von Fensterfunktionen

sind

MDC

var WindowObjectReference = window.open(strUrl, 
                                        strWindowName  
                                        [, strWindowFeatures]);

Es gibt nichts mehr im Wege stehen zu schreiben einen Wrapper aber, dass ein Objekt akzeptiert und ruft dann window.open() mit den entsprechenden Argumenten

Sie können Ihre eigene Funktion machen ein JSON-Objekt zu analysieren und die window.open () -Funktion mit spezifischen params auf dem Parsing basiert nennen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top