mirror of https://github.com/vitalif/phantomjs
Update bootstrap.js
Added copyrights Allow for passing options to WebPage constructor1.3
parent
4dca2b3d60
commit
b1ba0ee118
|
@ -1,12 +1,98 @@
|
|||
/*jslint sloppy: true, nomen: true */
|
||||
/*global window:true,phantom:true,fs:true */
|
||||
|
||||
/*
|
||||
This file is part of the PhantomJS project from Ofi Labs.
|
||||
|
||||
Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
|
||||
Copyright (C) 2011 Ivan De Marino <ivan.de.marino@gmail.com>
|
||||
Copyright (C) 2011 James Roe <roejames12@hotmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the <organization> nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
// This allows creating a new web page using the construct "new WebPage",
|
||||
// which feels more natural than "phantom.createWebPage()".
|
||||
window.WebPage = function () {
|
||||
window.WebPage = function (opts) {
|
||||
var page = phantom.createWebPage(),
|
||||
handlers = {};
|
||||
|
||||
function checkType(o, type) {
|
||||
return typeof o === type;
|
||||
}
|
||||
|
||||
function isObject(o) {
|
||||
return checkType(o, 'object');
|
||||
}
|
||||
|
||||
function isUndefined(o) {
|
||||
return checkType(o, 'undefined');
|
||||
}
|
||||
|
||||
function isUndefinedOrNull(o) {
|
||||
return isUndefined(o) || null === o;
|
||||
}
|
||||
|
||||
function copyInto(target, source) {
|
||||
if (target === source || isUndefinedOrNull(source)) {
|
||||
return target;
|
||||
}
|
||||
|
||||
target = target || {};
|
||||
|
||||
// Copy into objects only
|
||||
if (isObject(target)) {
|
||||
// Make sure source exists
|
||||
source = source || {};
|
||||
|
||||
if (isObject(source)) {
|
||||
var i, newTarget, newSource;
|
||||
for (i in source) {
|
||||
if (source.hasOwnProperty(i)) {
|
||||
newTarget = target[i];
|
||||
newSource = source[i];
|
||||
|
||||
if (newTarget && isObject(newSource)) {
|
||||
// Deep copy
|
||||
newTarget = copyInto(target[i], newSource);
|
||||
} else {
|
||||
newTarget = newSource;
|
||||
}
|
||||
|
||||
if (!isUndefined(newTarget)) {
|
||||
target[i] = newTarget;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
target = source;
|
||||
}
|
||||
}
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
function defineSetter(handlerName, signalName) {
|
||||
page.__defineSetter__(handlerName, function (f) {
|
||||
if (handlers && typeof handlers[signalName] === 'function') {
|
||||
|
@ -86,6 +172,11 @@ window.WebPage = function () {
|
|||
this._appendScriptElement(scriptUrl);
|
||||
};
|
||||
|
||||
// Copy options into page
|
||||
if (opts) {
|
||||
page = copyInto(page, opts);
|
||||
}
|
||||
|
||||
return page;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue