كيف يمكنك تمرير كائن JSON لمعلمات الخيار لفتح نافذة جديدة؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

كائن النافذة.Open () لديه بعض قائمة المعلمات غير تقليدية ...

هل هناك طريقة للقيام بشيء مثل Window.Open ({خيارات ..})؛

أفكار؟

هل كانت مفيدة؟

المحلول

لا يوجد هذا منشأة مدمجة إلى اللغة.

ومع ذلك، من السهل إلى حد ما كتابة واحدة نفسك.
علي سبيل المثال:

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

هل يمكن أن تمر options كمعلمة URL:

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

لا. هذه هي وظيفة دوم يسمى جافا سكريبت.

على أي حال، فإن استراتيجية "خيارات كائن الخيارات" تأتي في الحقيقة فقط إلى هذا الاستخدام الرائع مع مفهوم JSON، والتي يدفع المواصفات DOM بواسطة بعض الوقت.

يمكنك إنشاء كائن JS مع الحقول للمعلمات وتجاوز Tostring () إذا كنت تريد مساعد فتحات النافذة.

لا، ولكن يمكنك كتابة التفاف الخاص بك بسهولة كافية.

لا أعتقد ذلك لأن الميزات هي قائمة مفصولة بفواصل من ميزات النافذة

من عند MDC.

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

لا يوجد شيء يمنعك من كتابة غلاف رغم أن هذا يقبل كائن ثم يدعو window.open() مع الحجج المناسبة

يمكنك جعل وظيفتك الخاصة لتحليل كائن JSON واستدعاء وظيفة Window.Open () مع وجود بارز محددة بناء على التحليل؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top