从不同位置的html调用javascript函数

时间:2019-02-10 22:49:01

标签: javascript html jdbc

我正在尝试调用允许打印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文件中,并且可以正常工作。有什么问题吗?

1 个答案:

答案 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;
 }

https://jsfiddle.net/acvgout7/