CreateHTMLDocument с настраиваемым URL-адресом для документа - PullRequest
0 голосов
/ 13 июля 2020

Я хочу сделать что-то вроде этого

let doc = document.implementation.createHTMLDocument();
doc.URL = url;    //can't do, doc.URL is readonly

Любым способом установить do c .URL или do c .baseURI в настраиваемом документе, поскольку для них установлено значение about: blank.

Я хочу использовать этот объект документа для выполнения c .createelement ('a'), чтобы преобразовать относительные ссылки в абсолютные, но он находится в фоновом расширении, поэтому мне нужно иметь URL-адрес в настраиваемом документе для сделай это.

1 Ответ

1 голос
/ 13 июля 2020

Вы можете добавить элемент внутри вашего do c:

const doc = document.implementation.createHTMLDocument();
const base = doc.createElement( 'base' );
base.href = "https://example-site.com/biz/foo/";
doc.head.append( base );


const a = doc.createElement( "a" );
a.href = "../bar/baz.html";
doc.body.append( a );
console.log( a.href );

Но учтите, что вам все это вообще не нужно, URL конструктор принимает «базу» в качестве второго аргумента:

const base = "https://example-site.com/biz/foo/"
const rel = "../bar/baz.html";
console.log( new URL( rel, base ).href );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...