Javascript函数在head中未定义

时间:2015-05-25 13:35:50

标签: javascript html

我正在开发一个HTML应用程序,它打开一个包含摘要报告的新窗口,并提供打印该窗口的选项。这个新窗口是动态生成的,但我在electioncalc.com/WhyIsThisADud.html

上放了一份典型结果

问题是在头部中定义的“printThis()”函数在体内无法识别。单击“打印”按钮时,出现“printThis unknown object”或“Object Expected”错误。我输入了一个没有任何内容的虚拟“printThis2()”函数。身体也没有被认出来。我一定在这里犯了一个非常基本的错误,但我肯定找不到它。 HTML代码始终验证正常。我不知道javascript函数是否有效。我上网了,但由于这个问题而无法运行它。

代码部分:

<script type="/text/javascript"> 
/* <![CDATA[ */
  function printThis()   {
    var a = window.open('','', scrollbars=yes, width=800, height=600);
    a.document.open("text/html");
   a.document.write(document.getElementById('printableContent').innerHTML);
    a.document.close();
    a.print();
  }
/* ]]> */
</script>

......在头部和身体......

<div id="printDiv">
  <input type="button" value=" Print " id="printButton" onClick="Javascript: printThis()">
</div>

我已经做了多年的网站和应用程序,但我从未遇到过这样的事情。任何帮助(甚至是方向)都将不胜感激。

3 个答案:

答案 0 :(得分:3)

<script type="/text/javascript"> 
              ^
              |

由于这个错误的type属性(删除了前导斜杠),您的浏览器可能无法将您的代码识别为javascript。

答案 1 :(得分:1)

你应该得到的实际错误应该是不言自明的:

  

未捕获的ReferenceError:是未定义

因为window.open函数需要三个字符串参数,如下所示:

window.open('','', 'scrollbars=yes, width=800, height=600');

目前,您的Javascript正在执行scrollbars=yes语句,尝试将变量yes分配给全局scrollbars变量。由于该变量不存在,因此会出现错误。

答案 2 :(得分:0)

谢谢你们......这两个都是对的。第一个问题是我有一个带有斜杠“/ text / javascript”的flakey脚本类型。这就是为什么功能无法识别的原因。应该抓住那个。

正如所写,函数“window.open”看起来需要5个参数。在切割和粘贴之前,我应该更仔细地检查脚本。使用适当的引号,一切运作良好。

非常感谢。