我正在尝试调用允许打印div的javascript函数,定义为:
function printdiv(printpage) {
var headstr = "<html><head><title></title></head><body>";
var footstr = "</body>";
var newstr = document.all.item(printpage).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}
位于js文件夹中的文件“ main.js”内部。 HTML文件具有一个调用此功能的按钮:
<input id="downloadScan" type="button" onclick="printDiv('document');" class="btn btn-default" value="Print">
同一个html文件包含javascript函数的位置:
<script src="./js/main.js"></script>
但是当我单击按钮时,什么也没有发生。我试图将函数直接放在HTML文件中,并且可以正常工作。有什么问题吗?
答案 0 :(得分:0)
通常,您会将脚本标记放在页面标题(或某些情况下为主体)中,但是鉴于页面加载时脚本标记不存在,我担心这可能是执行顺序问题。
似乎您正在尝试动态创建页面,无需创建页面的整个结构即可完成此操作,而只需动态创建内容(正文)即可。似乎您正在尝试维护身体的内容并执行“附加”操作。
尝试以下设置:
index.html
<html>
<head>
<script src="./js/main.js"></script>
</head>
<body>
<input id="downloadScan" type="button" onclick="appendDiv('Some text not in a div');" class="btn btn-default" value="Print">
<input id="downloadScan2" type="button" onclick="appendDiv('<div>Some content in a div</div>');" class="btn btn-default" value="Print">
</body>
</html>
main.js
function appendDiv(content) {
document.body.innerHTML = document.body.innerHTML + content;
}