Merge pull request #1628 from dpalou/MOBILE-2752
MOBILE-2752 iframe: Handle window.open with target _self
This commit is contained in:
		
						commit
						173728541f
					
				@ -195,7 +195,7 @@ export class CoreIframeUtilsProvider {
 | 
				
			|||||||
    redefineWindowOpen(element: any, contentWindow: Window, contentDocument: Document): void {
 | 
					    redefineWindowOpen(element: any, contentWindow: Window, contentDocument: Document): void {
 | 
				
			||||||
        if (contentWindow) {
 | 
					        if (contentWindow) {
 | 
				
			||||||
            // Intercept window.open.
 | 
					            // Intercept window.open.
 | 
				
			||||||
            contentWindow.open = (url: string): Window => {
 | 
					            contentWindow.open = (url: string, target: string): Window => {
 | 
				
			||||||
                const scheme = this.urlUtils.getUrlScheme(url);
 | 
					                const scheme = this.urlUtils.getUrlScheme(url);
 | 
				
			||||||
                if (!scheme) {
 | 
					                if (!scheme) {
 | 
				
			||||||
                    // It's a relative URL, use the frame src to create the full URL.
 | 
					                    // It's a relative URL, use the frame src to create the full URL.
 | 
				
			||||||
@ -216,7 +216,14 @@ export class CoreIframeUtilsProvider {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (url.indexOf('cdvfile://') === 0 || url.indexOf('file://') === 0) {
 | 
					                if (target == '_self') {
 | 
				
			||||||
 | 
					                    // Link should be loaded in the same frame.
 | 
				
			||||||
 | 
					                    if (element.tagName.toLowerCase() == 'object') {
 | 
				
			||||||
 | 
					                        element.setAttribute('data', url);
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        element.setAttribute('src', url);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                } else if (url.indexOf('cdvfile://') === 0 || url.indexOf('file://') === 0) {
 | 
				
			||||||
                    // It's a local file.
 | 
					                    // It's a local file.
 | 
				
			||||||
                    this.utils.openFile(url).catch((error) => {
 | 
					                    this.utils.openFile(url).catch((error) => {
 | 
				
			||||||
                        this.domUtils.showErrorModal(error);
 | 
					                        this.domUtils.showErrorModal(error);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user