* Opens one or more URLs. Returns true when load was initiated, or
* false on error.
*
- * @param {string|object|Array} urls A representation of the URLs to open. May be
- * either a string, which will be passed to
- * {@link Dactyl#parseURLs}, an array in the same format as
- * would be returned by the same, or an object as returned by
- * {@link DOM#formData}.
+ * @param {string|Array} urls A representation of the URLs to open.
+ * A string will be passed to {@link Dactyl#parseURLs}. An array may
+ * contain elements of the following forms:
+ *
+ * • {string} A URL to open.
+ * • {[string, {string|Array}]} Pair of a URL and POST data.
+ * • {object} Object compatible with those returned
+ * by {@link DOM#formData}.
+ *
* @param {object} params A set of parameters specifying how to open the
* URLs. The following properties are recognized:
*
loc = { url: loc[0], postData: loc[1] };
else if (isString(loc))
loc = { url: loc };
+ else
+ loc = Object.create(loc);
+
+ if (isString(loc.postData))
+ loc.postData = ["application/x-www-form-urlencoded", loc.postData];
+
+ if (isArray(loc.postData)) {
+ let stream = services.MIMEStream(services.StringStream(loc.postData[1]));
+ stream.addHeader("Content-Type", loc.postData[0]);
+ stream.addContentLength = true;
+ loc.postData = stream;
+ }
// decide where to load the first url
switch (where) {
if (dactyl.commandLineOptions.rcFile == "NONE" || dactyl.commandLineOptions.noPlugins)
options["loadplugins"] = [];
- if (options["loadplugins"])
+ if (options["loadplugins"].length)
dactyl.loadPlugins();
}
catch (e) {