Como você pode passar JSON objeto de parâmetros de opção para abrir uma nova janela?
-
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?
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?