どのように新しいウィンドウを開くには、オプションパラメータのJSONオブジェクトを渡すことができますか?
-
19-09-2019 - |
質問
window.open()オブジェクトは、いくつかのファンキーなパラメータリストを持っている...
window.openような何かを行う方法がある({オプションが..});
思考?
解決
内蔵の言語にはそのような機能はありません。
しかし、それは1を自分で書くことはかなり簡単です。
たとえばます:
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);
}
他のヒント
も
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(','));
}
あなたがURLパラメータとしてoptions
を渡すことができます:
window.open( myURL + "/?options=" + JSON.stringify(options) );
はありません。それはJavaScriptを使用して呼び出されたDOM関数です。
いずれにせよ、「オプションオブジェクトの戦略は本当に唯一のいくつかの時間でJSONの概念を持つような偉大な使用法、DOMの仕様preceedsに来てます。
あなたはパラメータのフィールドでJSオブジェクトを構築し、あなたは窓オープナーヘルパーをしたい場合はtoString()をオーバーライドすることができます。
はありませんが、あなたは簡単に十分な、独自のラッパーを書くことができます。
の特徴は、ウィンドウの機能のカンマ区切りのリストですと、私はそうは思いません。
からの MDC のの
var WindowObjectReference = window.open(strUrl,
strWindowName
[, strWindowFeatures]);
があり、そのオブジェクトを受け入れるのにラッパーを書くことからあなたを止めるものは何もないですし、適切な引数を指定してwindow.open()
を呼び出します。
あなたはJSONオブジェクトを解析し、解析に基づいて特定のparamsでwindow.open()関数を呼び出すために、独自の機能を作ることができる?
所属していません StackOverflow