打印由object标记的url加载的页面

时间:2017-03-24 17:54:06

标签: javascript jquery html dom react-jsx

我正在尝试打印reactjs模式的内容。我在模态中嵌入了一个url,并希望打印带有这些内容的模态。以下是我的代码

<Modal.Body>
          <div>
             <object id="printableArea" type="text/html" data="http://www.xyztest.net/obj.html" className="objectClass">
        </object>
          </div>
        </Modal.Body>

我的打印按钮功能

handleToggle: function (divName) {
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}

这不会打印对象标签的网址内容..请让我知道如何实现这一点..我不想使用iframe

1 个答案:

答案 0 :(得分:0)

弹出窗口可能是一种更简单,更可靠的解决方案。假设divName指的是<object>标记,您可以执行以下操作:

handleToggle: function (divName) {
    var url = document.getElementById(divName).getAttribute('data');
    var win = window.open();
    win.document.write('<iframe style="width:100%;height:100%;padding:0px;margin:0px;" src="'+url+'" frameborder=0></iframe');
    setTimeout(function(){ 
       win.window.print()
    }, 1000);
}

这会打开一个空白的弹出窗口,写一个iframe并将src设置为你的url。然后等待一秒钟以加载页面并触发打印