- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试获取表格的内容并将其放入新窗口中进行打印,但我总是收到此错误:表格位于模态中,通过ajax函数动态返回模态:
这是ajax函数:
function view(id){
var html;
$.ajax({
url: "<?php echo site_url('admin/prescription/view_prescription_ajax') ?>/"+id,
type: 'POST',
dataType: 'html',
success:function(data){
html = data;
},
async: false
});
$('#view .modal-body').html(html);
$('#view').modal('show');
}
这是此代码返回的htmt
$data='';
$prescription = $this->prescription_model->get_prescription_by_id($id);
$template= $this->notification_model->get_template();
$data.='<table width="100%" border="0" id="printTable" class="pt" style="padding-bottom:0px; height:100%;" >
<thead>
<tr>
<td>
<table width="100%" style="border-bottom:1px solid;">
<tr>
<td style="line-height:110%">'.$template->header.'
</td>
</tr>
</table>
</td>
</tr>
</thead>
<tbody>
<tr>
<td >
<table width="100%">
<tr>
<td width="40%"><b>'.lang('name').'</b> : '.substr($prescription->patient,0,20).'</td>
<td width="18%"><b>'.lang('age').'</b> : '. date("Y")-$prescription->dob .' Years</td>
<td ><b>'.lang('sex').'</b> : '. $prescription->gender.'</td>
<td ><b>'.lang('id').'></b> :'.$prescription->prescription_id.'</td>
<td ><b>'.lang('date').'</b> : '. date("d-m-y", strtotime($prescription->date_time)).'</td>
</tr>
</table>
</td>
</tr>
<tr height="100%">
<td valign="top">
<table width="100%" border="0">
<tr>
<td width="51%" valign="top">
<table width="80%" border="0">
<tr>
<td width="100%">
<table border="0" >
<tr>
<td><b>Medical History</b></td>
</tr>';
$c = json_decode($prescription->case_history_id);
if(is_array($c)){
foreach($c as $new){
$data.='<tr><td>'.$dis = $new .'</td></tr>';
}
}else{
$data.='<tr><td>'.$c.'</td></tr>';
}
$data.='<tr>
<td>'. $prescription->case_history.'</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border="0">
<tr>
<td><b>Frequency</b></td>
</tr>
<tr>
<td>'.$prescription->frequency.'</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="51%">';
$d = json_decode($prescription->tests);
//echo '<pre>'; print_r($d);'</pre>';
if(!empty($d[0])){
$data.='<table border="0" width="100%">
<tr>
<td><b>'.lang('test').'</b></td>
</tr>';
$ins = json_decode($prescription->test_instructions);
if(is_array($d)){
$i=1;
foreach($d as $key => $new){
$data.='<tr><td>'.$i.'. '.$d[$key] .'<td></tr>';
if(!empty($ins[$key])){
$data.='<tr><td><p style="padding-left:14px;"><small>('.$ins[$key] .')</small></p><td></tr>';
}
$i++;}
}else{
$data.='<tr><td>'.$i.' '.$d.'<td></tr>';
$data.='<tr><td><p style="padding-left:14px;"><small>( '.$ins.' )</small></p><td></tr>';
}
$data.='</table>';
}
$data.='</td>
</tr>
</table>
</td>
<td valign="top">
<table border="0" width="100%" >
<tr>
<td><p><span style="font-size:26px"><b>R</span ><sub style="font-size:18px">x</b></sub></p></td>
</tr>';
$d = json_decode($prescription->medicines);
$ins = json_decode($prescription->medicine_instruction);
if(is_array($d)){
$i=1;
foreach($d as $key => $new){
if(!empty($d[$key]))
$data.='<tr><td style="padding-left:18px;">'.$i.'. '.$d[$key] .'<td></tr>';
$data.='<tr><td><p style="padding-left:32px;"><small>'.@$ins[$key] .'</small></p><td></tr>';
$i++;}
}else{
$data.='<tr><td style="padding-left:18px;">'.$i.' '.$d.'<td></tr>';
$data.='<tr><td><p style="padding-left:32px;"><small>'.$ins.'</small></p><td></tr>';
}
$data.='<tr>
<td>';
if(!empty($prescription->remark)){
$data.='<table width="100%" border="0">
<tr>
<td><b>'.lang('remark').'</b></td>
</tr>
<tr>
<td>'.$prescription->remark.'</td>
</tr>
</table>';
}
$data.='</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="border-top:1px solid;" class="aligncenter">
'.$template->footer.'
</td>
</tr>
</tfoot>
</table>
<div class="form-group no-print">
<div class="row no-print">
<div class="col-sm-4 pull-right">
<a class="btn btn-default yes-print no-print" id="print_p" onClick="printData();" style="margin-right: 5px;"><i class="fa fa-print"></i>'.lang('print').'</a>
<a href="http://medicalfrequencycentre.com/drsystem/admin/prescription/pdf/'.$prescription->id.' id="pdf" class="btn btn-primary no-print" style="margin-right: 5px;"><i class="fa fa-download"></i>'.lang('generate_pdf').'</a>
</div>
</div>
</div>
';
echo $data;
这是 JavaScript
function printData()
{
var divToPrint=document.getElementById("printTable");
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
最佳答案
您应该在成功时调用打印数据,因为稍后将 dom 内容添加到 dom 后事件不会绑定(bind)。也不要忘记从按钮属性中删除 onClick="printData"
function view(id){
var html;
$.ajax({
url: "<?php echo site_url('admin/prescription/view_prescription_ajax') ?>/"+id,
type: 'POST',
dataType: 'html',
success:function(data){
html = data;
$("#print_p").on("click", function(e){ printData(); });
},
async: false
});
$('#view .modal-body').html(html);
$('#view').modal('show');
}
关于javascript - 未捕获的类型错误 : Cannot read property 'outerHTML' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741578/
在 HTML5/JavaScript 中,如果我以编程方式创建一个命名空间 dom 节点,如下所示: svgElt = document.createElementNS("http://www.w3.
HTML: func2() JS: function func1() { console.log(arguments.callee.caller.arguments[0]
我正在尝试将 HTML 代码作为具有属性更新的字符串获取。 我有一个 select 标签,我使用 JavaScript 更新了它的选项。 默认情况下,第一个选项是使用HTML属性selected="s
我的页面的访问者可以将主体的背景设置为颜色或图像。这些更改最终内嵌为如下内容: 现在我想获取上面跟在 style= 之后的字符串,并使用那里的参数来构建一个合适的样式字符串: body
我在使用 IE 浏览器时遇到的outerHTML 问题 如果我说: txt="Update Complete!"; msg = sub.appendChild(d.createElement("p")
我正在尝试为 jQuery 元素获取一致的跨浏览器 outerHtml,尤其是 $("html").outerHtml()。例如,如果页面源是这样的: 我希望能够使用 $("html").outer
我在 html 中有 3 张图片。 我用 querySelectorAll 选择图像,把它们变成一个数组,然后: 第一步 我将它们封装在 中标签,添加 .img-container类,使用 oute
考虑以下片段: var cites = document.getElementsByTagName('cite'); console.log(cites.length); cites[0].outer
这把 fiddle https://jsfiddle.net/xa9m49zy/演示了您可以在渲染时获取 DOM 中文本区域的 outerHTML(带有文本区域值),但是当文本区域动态添加到 DOM
我想获取一个 div#content 的 outerHTML,标签被 .text() 转义到一个变量中,像这样: var divContent = $('div#content')[0].text()
我创建了一个通用元素 var element = document.createElement(null); document.body.appendChild(element); 之后,使用 out
我有简单的代码: document.getElementById("number").addEventListener('click', test); var i = 1; function test
我正在使用 jQuery 获取外部 html:$('.page')[0].outerHTML这有效,但我有必须像这样关闭的 img 标签:但 outerHTML 删除了 / .如何解决这个问题? UP
我有以下 javascript: // create a new article tag var elem = document.createElement('article'); // append
当你想得到 HTML对于整个 DOM 元素(包括包装器),您可以执行以下操作(如 here 所述): $('#myElementId')[0].outerHTML 但是您不能做的是在 $(this)
我通过将其内容替换为 outerHTML 来替换 DOM 元素.这个技巧有效,但我需要立即访问新创建的 DOM 元素。 不幸的是元素的创建和生成 var code 的内容不在我的控制之下。 var c
我的代码从 Ajax 调用中获取 JSON,其中包含 XML,并通过它读取一些信息。 虽然 XML 的解析在 Chrome 中运行良好,但在 IE 中却不行,因为在 IE 中 outerHTML 返回
在开发过程中,jQuery.html() 是获取当前节点下的html代码,并不包含当前节点本身的代码,然后我们有时候确需要,找遍jQuery api文档也没有任何方法可以拿到。 看到有的人通过pa
我在页面上有这个 HTML 模板: Bid #1 我正在尝试删除 _[[template]] 文本,并将
所以如果我有一个 容器……我用你知道的: document.querySelector('.iii').outerHTML='';它删除了 span 并实质上从 DOM 中删除了该 span 元素,并
我是一名优秀的程序员,十分优秀!