Como você pode passar JSON objeto de parâmetros de opção para abrir uma nova janela?

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

  •  19-09-2019
  •  | 
  •  

Pergunta

o window.open () objeto tem alguma lista de parâmetros funk ...

Existe uma maneira de fazer algo como window.open ({opções ..});

Os pensamentos?

Foi útil?

Solução

Não existe tal facilidade built-in para o idioma.

No entanto, é bastante fácil de escrever um você mesmo.
Por exemplo:

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

Outras dicas

bem

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

Você poderia passar options como parâmetro URL:

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

No. Isso é uma função dom chamado com javascript.

Em qualquer caso, a estratégia 'opções objeto' é realmente só entrar em tão grande uso com o conceito de JSON, que o DOM especificação precede por algum tempo.

Você pode construir um objeto JS com campos para os parâmetros e toString override () se você quiser um ajudante janela abridor.

Não, mas você pode escrever seu próprio invólucro com bastante facilidade.

Eu não penso assim como as características são uma vírgula lista de recursos janela separada

De MDC

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

Não há nada que você parar de escrever um invólucro no entanto, que aceita um objeto e, em seguida, chama window.open() com os argumentos apropriados

Você pode fazer sua própria função para analisar um objeto JSON e chamar a função window.open () com parâmetros específicos, com base na análise?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top