Twitter bootstrap 无法使打印按钮在Carousel的Twitter引导模式弹出窗口中工作
我按照问题“推特引导:打印模态窗口的内容”的答案,但我还没有得到任何打印的内容。我使用PHP在旋转木马中循环并显示多个图像,并且可以在模式中正确显示单击的图像,但是当单击模式上的打印按钮时,不会发生任何事情,也不会收到错误消息 我的模式代码:Twitter bootstrap 无法使打印按钮在Carousel的Twitter引导模式弹出窗口中工作,twitter-bootstrap,Twitter Bootstrap,我按照问题“推特引导:打印模态窗口的内容”的答案,但我还没有得到任何打印的内容。我使用PHP在旋转木马中循环并显示多个图像,并且可以在模式中正确显示单击的图像,但是当单击模式上的打印按钮时,不会发生任何事情,也不会收到错误消息 我的模式代码: <?php $launch_cnt = 0; // Get images again for building modals $media2 = Media::find_by_sql($sql); foreach($media2 as $media2
<?php
$launch_cnt = 0;
// Get images again for building modals
$media2 = Media::find_by_sql($sql);
foreach($media2 as $media2):
$launch_cnt++;
$launch = "launch" . $launch_cnt;
?>
<section id=<?php echo $launch; ?> class="modal hide fade">
<header class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
</header>
<div id="printThis">
<div class="modal-body">
<img src="../<?php echo $media2->image_path(); ?>" />
</div>
</div>
<footer class="modal-footer">
<button id="btnPrint">Print</button>
<button class="btn btn-primary" data-dismiss="modal">Close</button>
</footer>
</section>
<?php
endforeach;
?>
" />
印刷品
接近
我已经实现了JS代码和CSS代码,正如在
我已经做了一些测试,问题似乎出在我的Javascript中的某个地方。如果我使用此代码(放在结束标记之前):
警报(“你好,世界!”);
document.getElementById(“btnPrint”).onclick=function(){
printElement(document.getElementById(“printThis”);
window.print();
}
然后弹出“你好,世界!“显示,这基本上告诉我我到了那里。但是,如果我包含名为printElement的必需函数,则不会显示警报弹出窗口,因此根本不会执行JS。包含该函数的完整JS是:
<script>
alert("Hello World!");
document.getElementById("btnPrint").onclick = function() {
printElement(document.getElementById("printThis"));
window.print();
}
function printElement(elem) {
var domClone = elem.cloneNode(true);
var $printSection = document.getElementById("printSection");
if (!$printSection) {
var $printSection = document.createElement("div");
$printSection.id = "printSection";
document.body.appendChild($printSection);
}
$printSection.appendChild(domClone);
}
</script>
警报(“你好,世界!”);
document.getElementById(“btnPrint”).onclick=function(){
printElement(document.getElementById(“printThis”);
window.print();
}
功能打印元素(elem){
var domClone=elem.cloneNode(真);
var$printSection=document.getElementById(“printSection”);
如果(!$printSection){
var$printSection=document.createElement(“div”);
$printSection.id=“printSection”;
文件.正文.附件(打印部分);
}
$printSection.appendChild(domClone);
}
负责显示打印对话框的部分是:
document.getElementById("btnPrint").onclick = function() {
window.print();
}
您还可以将html更改为:
<button id="btnPrint" onclick="window.print()">Print</button>
打印
首先,在声明$launch
变量后,您误用了一个结束标记。@Adam:没有丢失的?>标记。PHP在声明了带有注释的$launch变量后继续,因此代码在这方面没有问题,但谢谢。然后,您需要在声明变量之前进行回显>章节
tag@Adam:我不确定我是否明白你的意思……为什么需要echo语句?@Adam:对不起,我现在明白你指的是什么了。我的结束?>标记实际上在那里,但在我将代码复制和粘贴到stackoverflow时被意外删除。Adam:没有丢失?>标记。PHP在用评论,然后继续,所以这没有问题。rsymek@ryzmek:好的,谢谢你的建议。我试过了,结果打印出了一张空白页。所以这是另一个不同的问题。可能是你的CSS不走运。有人有什么想法吗?
<button id="btnPrint" onclick="window.print()">Print</button>