【问题标题】:Jquery UI dialog Close button not workingJquery UI对话框关闭按钮不起作用
【发布时间】:2014-08-02 09:06:58
【问题描述】:

我使用了如下图所示的 jquery UI 对话框。

当我点击打印按钮时,对话框内的 div 内容将被打印出来。

打印函数代码

function printDiv() {
    var originalContents = document.body.innerHTML; 
    var printContents = document.getElementById('PrintDivcontent').innerHTML;
    document.body.innerHTML = "<html><head><title></title></head><body style='background-color:#FFFFFF;'>"
            + printContents + "</body>";
    window.print(); 
    document.body.innerHTML = originalContents;
}

打印功能运行良好。但是通过单击打印按钮打印内容后,对话框的关闭按钮不起作用。当我在单击打印之前单击关闭按钮时,它将起作用。 在控制台显示以下错误

TypeError: $(...).data(...) is undefined
.data( widgetFullName )._focusTabbable();

有什么解决方法吗? 请帮帮我。

更新

HTML 代码

<div id="ReportPopup">
            <div id="PrintDivcontent">

                <div id="ReportTablecontainer">
                    <table id="ReportTable"><tbody><tr><th>Time</th><th>Action</th><th>comment</th></tr><tr class=""><td style="text-align:center;width:25%">2014-06-05 13:50:03</td><td style="padding-left:5px;width:50%">cdfsdfsd</td><td style="text-align:center;width:25%"></td></tr><tr class="altRow"><td style="text-align:center;width:25%">2014-06-05 13:51:58</td><td style="padding-left:5px;width:50%">fsdfsd</td><td style="text-align:center;width:25%">dsfsd</td></tr><tr class=""><td style="text-align:center;width:25%">2014-06-05 13:52:01</td><td style="padding-left:5px;width:50%">dfsdfs</td><td style="text-align:center;width:25%">sfsdfs</td></tr><tr class="altRow"><td style="text-align:center;width:25%">2014-06-05 14:25:45</td><td style="padding-left:5px;width:50%">dsfsdfs</td><td style="text-align:center;width:25%">sdfsdfsd</td></tr><tr class=""><td style="text-align:center;width:25%">2014-06-05 14:42:10</td><td style="padding-left:5px;width:50%">sdfsdfsd</td><td style="text-align:center;width:25%">sdfsdfsd</td></tr></tbody></table>
                </div>
            </div>
            <div class="reportButtonContainer">

                <input type="button" onclick="printDiv()"  value="PRINT">
            </div>
        </div>

对话框

$("#ReportPopup").dialog({
            modal:true,
            resizable: false,
            title: 'Report',           
            show:  {
                effect      : 'fold'
            },
            hide:{
                effect : 'fold'
            },
            width: 650,
            height: 600 ,
            minHeight:"auto"
        });

【问题讨论】:

  • 您好,能否提供相关的HTML代码,以便我完成Fiddle。谢谢
  • JSFiddle 已关闭,请稍候
  • 请在小提琴中发布演示
  • 嗨,我已经检查了它的工作,请检查链接jsbin.com/bidipivu/1/edit
  • @subhkriti 不适合我...

标签: javascript jquery html jquery-ui


【解决方案1】:

我更改了打印功能的代码。

function printDiv() {  
      var divContents = $("#PrintDivcontent").html();
        var printWindow = window.open('', '', 'height=600,width=800');
        printWindow.document
                .write('<html><head><title>Title of Print Page</title>');
        printWindow.document.write('</head><body >');
        printWindow.document.write(divContents);

        printWindow.document.close();
        printWindow.print();
        printWindow.close();

    }

现在它工作正常。 DEMO

【讨论】:

  • 您好,请您再次查看演示链接,我想现在打印 Windows 的对话框没有起床。
猜你喜欢
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
相关资源
最近更新 更多