Идея в том, чтобы получить содержимое iframe
, открыть окно новой вкладки и заменить HTML нового окна содержимым, полученным из iframe.
, поэтому в приведенном ниже компоненте у меня есть
const printComp = ()=>{
onPrint = () => {
let temp = document.getElementById('iprintable') as HTMLIFrameElement;
let win = window.open();
const content= temp!.contentWindow!.document.documentElement); // Here I have a complete document
/* here I have tried followings*/
};
return <button className="..." onClick={this.onPrint}/>
}
, поэтому попытка замены на:
win!.document = content /* Cannot assign to 'document' because it is a read-only property*/
win!.document.body = content /*The new body element is of type 'HTML'. It must be either a 'BODY' or 'FRAMESET' element.*/
win!.document.body.innerHTML=content /*Type 'HTMLElement' is not assignable to type 'string'*/
с использованием win!.document.body.innerHTML=content.innerHTML
работает, но содержимое Head
в iframe переходит в тег body
.это нормально или так не должно быть?в общем, как мне заменить все содержимое окна новой вкладки содержимым iframe.
PS: в общем, я нашел печать содержимого iframe катастрофой, таков мой подход, так как мой предыдущий вопрос не получил ответ (по-прежнему доступна награда:))