どのように新しいウィンドウを開くには、オプションパラメータのJSONオブジェクトを渡すことができますか?

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

  •  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()関数を呼び出すために、独自の機能を作ることができる?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top