forked from CIT/Vmeda.Online
		
	Merge pull request #1409 from dpalou/MOBILE-2465
MOBILE-2465 dom: Revert DOMParser solution to parse HTML
This commit is contained in:
		
						commit
						60c5ff9bc5
					
				| @ -35,8 +35,6 @@ export class CoreDomUtilsProvider { | ||||
|         'search', 'tel', 'text', 'time', 'url', 'week']; | ||||
|     protected INSTANCE_ID_ATTR_NAME = 'core-instance-id'; | ||||
| 
 | ||||
|     protected parser = new DOMParser(); // Parser to treat HTML.
 | ||||
| 
 | ||||
|     protected matchesFn: string; // Name of the "matches" function to use when simulating a closest call.
 | ||||
|     protected instances: {[id: string]: any} = {}; // Store component/directive instances by id.
 | ||||
|     protected lastInstanceId = 0; | ||||
| @ -127,20 +125,13 @@ export class CoreDomUtilsProvider { | ||||
| 
 | ||||
|     /** | ||||
|      * Convert some HTML as text into an HTMLElement. This HTML is put inside a div or a body. | ||||
|      * @todo: Try to use DOMParser or similar since this approach will send a request to all embedded media. | ||||
|      * We removed DOMParser solution because it isn't synchronous, document.body wasn't always loaded at start. | ||||
|      * | ||||
|      * @param {string} html Text to convert. | ||||
|      * @return {HTMLElement} Element. | ||||
|      */ | ||||
|     convertToElement(html: string): HTMLElement { | ||||
|         if (this.parser) { | ||||
|             const doc = this.parser.parseFromString(html, 'text/html'); | ||||
| 
 | ||||
|             // Verify that the doc is valid. In some OS like Android 4.4 only XML parsing is supported, so doc is null.
 | ||||
|             if (doc) { | ||||
|                 return doc.body; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         const element = document.createElement('div'); | ||||
|         element.innerHTML = html; | ||||
| 
 | ||||
|  | ||||
| @ -68,8 +68,6 @@ export class CoreTextUtilsProvider { | ||||
|         {old: /_mmaModWorkshop/g, new: '_AddonModWorkshop'}, | ||||
|     ]; | ||||
| 
 | ||||
|     protected parser = new DOMParser(); // Parser to treat HTML.
 | ||||
| 
 | ||||
|     constructor(private translate: TranslateService, private langProvider: CoreLangProvider, private modalCtrl: ModalController) { } | ||||
| 
 | ||||
|     /** | ||||
| @ -179,20 +177,13 @@ export class CoreTextUtilsProvider { | ||||
|     /** | ||||
|      * Convert some HTML as text into an HTMLElement. This HTML is put inside a div or a body. | ||||
|      * This function is the same as in DomUtils, but we cannot use that one because of circular dependencies. | ||||
|      * @todo: Try to use DOMParser or similar since this approach will send a request to all embedded media. | ||||
|      * We removed DOMParser solution because it isn't synchronous, document.body wasn't always loaded at start. | ||||
|      * | ||||
|      * @param {string} html Text to convert. | ||||
|      * @return {HTMLElement} Element. | ||||
|      */ | ||||
|     protected convertToElement(html: string): HTMLElement { | ||||
|         if (this.parser) { | ||||
|             const doc = this.parser.parseFromString(html, 'text/html'); | ||||
| 
 | ||||
|             // Verify that the doc is valid. In some OS like Android 4.4 only XML parsing is supported, so doc is null.
 | ||||
|             if (doc) { | ||||
|                 return doc.body; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         const element = document.createElement('div'); | ||||
|         element.innerHTML = html; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user