Merge pull request #7985 from yurydelendik/ie9-doc-ready

Fixes IE9 document.readyState and input.type=number issues.
This commit is contained in:
Jonas Jenwald 2017-01-23 16:37:23 +01:00 committed by GitHub
commit a47fc2f8f3

View File

@ -596,4 +596,44 @@ if (typeof PDFJS === 'undefined') {
});
})();
// Provides `input.type = 'type'` runtime failure protection.
// Support: IE9,10.
(function checkInputTypeNumberAssign() {
var el = document.createElement('input');
try {
el.type = 'number';
} catch (ex) {
var inputProto = el.constructor.prototype;
var typeProperty = Object.getOwnPropertyDescriptor(inputProto, 'type');
Object.defineProperty(inputProto, 'type', {
get: function () { return typeProperty.get.call(this); },
set: function (value) {
typeProperty.set.call(this, value === 'number' ? 'text' : value);
},
enumerable: true,
configurable: true
});
}
})();
// Provides correct document.readyState value for legacy browsers.
// Support: IE9,10.
(function checkDocumentReadyState() {
if (!document.attachEvent) {
return;
}
var documentProto = document.constructor.prototype;
var readyStateProto = Object.getOwnPropertyDescriptor(documentProto,
'readyState');
Object.defineProperty(documentProto, 'readyState', {
get: function () {
var value = readyStateProto.get.call(this);
return value === 'interactive' ? 'loading' : value;
},
set: function (value) { readyStateProto.set.call(this, value); },
enumerable: true,
configurable: true
});
})();
}).call((typeof window === 'undefined') ? this : window);