mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Removed more IE workarounds from knockoutjs
This commit is contained in:
parent
9241726ffe
commit
118c1613a4
12 changed files with 160 additions and 455 deletions
|
|
@ -337,8 +337,6 @@
|
|||
var bindingContextForDescendants = bindingContext;
|
||||
|
||||
var isElement = (nodeVerified.nodeType === 1);
|
||||
if (isElement) // Workaround IE <= 8 HTML parsing weirdness
|
||||
ko.virtualElements.normaliseVirtualElementDomStructure(nodeVerified);
|
||||
|
||||
// Perf optimisation: Apply bindings only if...
|
||||
// (1) We need to store the binding info for the node (all element nodes)
|
||||
|
|
@ -549,8 +547,6 @@
|
|||
}
|
||||
|
||||
ko.applyBindingAccessorsToNode = function (node, bindings, viewModelOrBindingContext) {
|
||||
if (node.nodeType === 1) // If it's an element, workaround IE <= 8 HTML parsing weirdness
|
||||
ko.virtualElements.normaliseVirtualElementDomStructure(node);
|
||||
return applyBindingsToNodeInternal(node, bindings, getBindingContext(viewModelOrBindingContext));
|
||||
};
|
||||
|
||||
|
|
@ -583,7 +579,6 @@
|
|||
if (node && (node.nodeType === 1 || node.nodeType === 8)) {
|
||||
return ko.storedBindingContextForNode(node);
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
ko.dataFor = function(node) {
|
||||
var context = ko.contextFor(node);
|
||||
|
|
@ -598,6 +593,5 @@
|
|||
ko.exportSymbol('applyBindingsToDescendants', ko.applyBindingsToDescendants);
|
||||
ko.exportSymbol('applyBindingAccessorsToNode', ko.applyBindingAccessorsToNode);
|
||||
ko.exportSymbol('applyBindingsToNode', ko.applyBindingsToNode);
|
||||
ko.exportSymbol('contextFor', ko.contextFor);
|
||||
ko.exportSymbol('dataFor', ko.dataFor);
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -114,10 +114,6 @@ ko.bindingHandlers['checked'] = {
|
|||
useElementValue = isRadio || valueIsArray,
|
||||
oldElemValue = valueIsArray ? checkedValue() : undefined;
|
||||
|
||||
// IE 6 won't allow radio buttons to be selected unless they have a name
|
||||
if (isRadio && !element.name)
|
||||
ko.bindingHandlers['uniqueName']['init'](element, function() { return true });
|
||||
|
||||
// Set up two computeds to update the binding:
|
||||
|
||||
// The first responds to changes in the checkedValue value and to element clicks
|
||||
|
|
|
|||
|
|
@ -15,10 +15,7 @@ ko.bindingHandlers['selectedOptions'] = {
|
|||
|
||||
if (newValue && typeof newValue.length == "number") {
|
||||
ko.utils.arrayForEach(element.getElementsByTagName("option"), function(node) {
|
||||
var isSelected = ko.utils.arrayIndexOf(newValue, ko.selectExtensions.readValue(node)) >= 0;
|
||||
if (node.selected != isSelected) { // This check prevents flashing of the select element in IE
|
||||
node.selected = isSelected;
|
||||
}
|
||||
node.selected = ko.utils.arrayIndexOf(newValue, ko.selectExtensions.readValue(node)) >= 0;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,7 @@
|
|||
case 'option':
|
||||
if (typeof value === "string") {
|
||||
ko.utils.domData.set(element, ko.bindingHandlers.options.optionValueDomDataKey, undefined);
|
||||
if (hasDomDataExpandoProperty in element) { // IE <= 8 throws errors if you delete non-existent properties from a DOM node
|
||||
delete element[hasDomDataExpandoProperty];
|
||||
}
|
||||
delete element[hasDomDataExpandoProperty];
|
||||
element.value = value;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue