Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用单击功能后刷新同一页上的div_Javascript_Jquery_Html_Javascript Events - Fatal编程技术网

Javascript 使用单击功能后刷新同一页上的div

Javascript 使用单击功能后刷新同一页上的div,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,我使用的是一个java脚本打印函数,它在单击时打印页面的预定义div。功能如下: <head> <script type="text/javascript"> function printDiv(any printable div) { var printContents = document.getElementById(any printable div).innerHTML; var originalContents = document.b

我使用的是一个java脚本打印函数,它在单击时打印页面的预定义div。功能如下:

<head>
<script type="text/javascript">
function printDiv(any printable div) {      
var printContents = document.getElementById(any printable div).innerHTML;      
var originalContents = document.body.innerHTML;       
document.body.innerHTML = printContents;       
window.print();       
document.body.innerHTML = originalContents; 
} 
</script>
</head>
<body>
<input type="button" class="button" onclick="printDiv('any printable div')" name="print" value="print" />
<div id = "any printable div"> On button click contents here are printed </div>
</body>
所有这些都可以独立工作。问题在于,单击打印按钮时,文本框/滚动条停止滚动文本。在刷新页面之前,滚动条无法滚动文本。因此,我使用html元刷新,但这可能是一个烦人的经验,游客。我也不想在iframe中使用滚动条

到目前为止,我已经尝试了一些基于j-query和java脚本的解决方案。脚本刷新(只是在整个文本块中淡入淡出)div,其中滚动条处于静默状态,但实际上无法保持文本滚动


是否有任何好的j-query或基于java脚本的解决方案可以根据我在给定时间段内解释的情况以静默方式刷新scroller div?

变量名中不能有空格<代码>函数printDiv(任何可打印的div)是语法错误

请尝试:

function printDiv(elId) {      
    var printContents = document.getElementById(elId).innerHTML;      
    var originalContents = document.body.innerHTML;       
    document.body.innerHTML = printContents;       
    window.print();       
    document.body.innerHTML = originalContents; 
}

根据您所说的,我假设这里的目的是能够只打印某个div,而不是整个页面。如果是这样的话,那么你真的要走极端来执行这个功能

如果你只是想制作一个更漂亮的页面来打印(没有菜单等),看看吧。这个问题将展示如何使用一组不同的css进行打印,因此您可以设置
display:none到打印时不想显示的任何内容

如果您只想打印一个div,那么可以查看。这是一个简单的js文件,您可以在html中链接它,然后调用它

$([selector]).printElement()

只打印该元素。例如,您可以将您的方法改写为:

function printDiv(anyPrintableDiv) { 
    $('#' + anyPrintableDiv).printElement();
} 

是的,我知道。这样写只是为了容易理解。谢谢,这真的很奇怪,当我使用github上托管的
jquery.printElement.min.js
插件时,打印功能工作得很好,但当它托管在我的服务器上时,打印功能就不工作了。知道为什么会这样吗?请看我的答案。谢谢
function printDiv(anyPrintableDiv) { 
    $('#' + anyPrintableDiv).printElement();
}