在打开新标签上,替换HTML内容

时间:2019-03-08 16:03:17

标签: javascript html html5 dom iframe

这里的想法是让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可以,但是iframe中Head的内容将转到body标签。可以还是不应该那样? 一般来说,我应该如何用iframe的内容替换新标签窗口的全部内容。

P.S:总的来说,我发现打印iframe的内容很麻烦,这是我的做法,因为我的previous question没有得到答案(仍然有赏金:))

0 个答案:

没有答案