happy-dom
Version:
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
29 lines (25 loc) • 589 B
text/typescript
import IBrowserFrame from '../types/IBrowserFrame.js';
import { URL } from 'url';
/**
* Browser frame URL utility.
*/
export default class BrowserFrameURL {
/**
* Returns relative URL.
*
* @param frame Frame.
* @param url URL.
* @returns Relative URL.
*/
public static getRelativeURL(frame: IBrowserFrame, url: string): URL {
url = url || 'about:blank';
if (url.startsWith('about:') || url.startsWith('javascript:')) {
return new URL(url);
}
try {
return new URL(url, frame.window.location.href);
} catch (e) {
return new URL('about:blank');
}
}
}