Catrope has uploaded a new change for review.
https://gerrit.wikimedia.org/r/63250
Change subject: Add ve.properOuterHtml
......................................................................
Add ve.properOuterHtml
Like ve.properInnerHtml but for outerHTML. Factored out the shared code
into ve.fixupPreBug.
Change-Id: I5c5b6d017936c6c2e71631fb8859ba1dbd95615a
---
M modules/ve/ve.js
1 file changed, 29 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/50/63250/1
diff --git a/modules/ve/ve.js b/modules/ve/ve.js
index e606403..a956012 100644
--- a/modules/ve/ve.js
+++ b/modules/ve/ve.js
@@ -1095,7 +1095,33 @@
* @param {HTMLElement} element HTML element to get inner HTML of
* @returns {string} Inner HTML
*/
- ve.properInnerHTML = function ( element ) {
+ ve.properInnerHtml = function ( element ) {
+ return ve.fixupPreBug( element ).innerHTML;
+ };
+
+ /**
+ * Get the actual outer HTML of a DOM node.
+ *
+ * @see ve#properInnerHtml
+ *
+ * @param {HTMLElement} element HTML element to get outer HTML of
+ * @returns {string} Outer HTML
+ */
+ ve.properOuterHtml = function ( element ) {
+ return ve.fixupPreBug( element ).outerHTML;
+ };
+
+ /**
+ * Helper function for ve#properInnerHtml and ve#properOuterHtml.
+ *
+ * Detect whether the browser has broken `<pre>` serialization, and if
so return a clone
+ * of the node with extra newlines added to make it serialize properly.
If the browser is not
+ * broken, just return the original node.
+ *
+ * @param {HTMLElement} element HTML element to fix up
+ * @returns {HTMLElement} Either element, or a fixed-up clone of it
+ */
+ ve.fixupPreBug = function ( element ) {
var div, $element;
if ( ve.isPreInnerHTMLBroken === undefined ) {
// Test whether newlines in `<pre>` are serialized back
correctly
@@ -1105,7 +1131,7 @@
}
if ( !ve.isPreInnerHTMLBroken ) {
- return element.innerHTML;
+ return element;
}
// Workaround for bug 42469: if a `<pre>` starts with a
newline, that means .innerHTML will
@@ -1124,7 +1150,7 @@
}
}
} );
- return $element.get( 0 ).innerHTML;
+ return $element.get( 0 );
};
// Based on the KeyEvent DOM Level 3 (add more as you need them)
--
To view, visit https://gerrit.wikimedia.org/r/63250
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5c5b6d017936c6c2e71631fb8859ba1dbd95615a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits