Я генерирую некоторый HTML-контент динамически, например:
var content = "<head><title>testtitle</title></head><body>testbody</body>";
Затем я получаю новую вкладку с about:blank
, и теперь я хочу отобразить мой сгенерированный HTML-файл на этой вкладке.Если contentDocument вкладки newDoc, я подумаю, что просто сделаю:
newDoc.documentElement.innerHTML = content;
Однако это не сработает.Кажется, не имеет никакого эффекта вообще.В firebug он, кажется, работает один раз, но в то же время запирает firebug, так что я не могу проверить, вид источника остается неизменным.t изменить отображаемую пустую страницу, также не в исходном представлении, но если я оповестю newDoc.documentElement.innerHTML, она отразит изменения.Кажется, что это не тот документ, который больше не отображается.Странно.
Итак, мой вопрос: как мне это сделать?В частности, в расширении Firefox, если это важно.
Возможно, существует формат href с "text: // ..." вместо "file: // ..." или чем-то еще?
Обновление:
Оказывается, я не могу заменить таким образом только полный код, я даже не могу body.appendChild, но я уверен, что сделал этораньше, поэтому я сравнил.Здесь я получаю свой документ следующим образом:
var tab = getBrowser().addTab(); //make new tab
getBrowser().selectedTab = tab; //bring it to front
var browser = getBrowser().getBrowserForTab(tab); //get the window of the tab
var newDoc = browser.contentDocument;
Теперь я могу сделать:
newDoc.location.href = url;
И это работает, он загружает данную страницу.Поэтому я подумал, что это правильный документ, но если я не назначу URL, а вместо этого попытаюсь создать домен самостоятельно, он просто не будет работать.
Если я внесу эти изменения в window.content.документ после вкладки впереди, работает.Так почему же эти документы отличаются?Если newDoc неправильный, почему назначение местоположения что-то делает?
Хотя я могу заставить его работать сейчас, мне не особенно нравится решение получить документ, переместив вкладку вперед изатем захватывает документ window.content, который выглядит как хак и зависит от времени.