从另一个javascript函数生成的html调用javascript函数

时间:2012-09-27 17:19:02

标签: javascript

我是javascript的新手。正如标题所说,我试图从另一个javascript函数生成的html中调用javascript函数。以下是此代码的简单版本:

<HTML>
   <HEAD>
   <SCRIPT language="JavaScript">
      function myFunction1()
      {
         var html_text = "<HTML><BODY><FORM><INPUT type=\"button\" onClick=

\"myFunction2()\" value=\"function2\" /></FORM></BODY></HTML>";
         document.write(html_text);
         document.close();
      }

      function myFunction2()
      {
         alert("function2 called!");
      }
   </SCRIPT>
   </HEAD>
   <BODY>
      <FORM><INPUT type="button" onClick="myFunction1()" value="function1" 

/></FORM>
   </BODY>
</HTML>

当我运行firebug时,我收到一条错误消息“myFunction2未定义”。我想我必须将myFunction2放在myFunction1生成的html代码中。所以我改变了我的代码:

<HTML>
   <HEAD>
   <SCRIPT language="JavaScript">
      function myFunction1()
      {
         var html_text = "<HTML><HEAD><SCRIPT language=\"JavaScript

\">function myFunction2(){alert(\"function2 called!\");}

</SCRIPT></HEAD><BODY><FORM><INPUT type=\"button\" onClick=\"myFunction2()\" 

value=\"function2\" /></FORM></BODY></HTML>";
         document.write(html_text);
         document.close();
      }

      /* function myFunction2()
      {
         alert("function2 called!");
      } */
   </SCRIPT>
   </HEAD>
   <BODY>
      <FORM><INPUT type="button" onClick="myFunction1()" value="function1" 

/></FORM>
   </BODY>
</HTML>

然而,在这次改变后,我得到了一些混乱的结果,而且萤火虫说“var html_text = ...”的未终止字符串文字。有什么建议? 另外,我的实际myFunction2非常大,如果我必须将它插入myFunction1生成的html中,是否有一个很好的方法将它放入?此外,教师不希望我们使用单独的文件。谢谢!

2 个答案:

答案 0 :(得分:0)

这将有效

<HTML>
   <HEAD>
   <SCRIPT language="JavaScript">
      function myFunction1()
      {
         var html_text = "<HTML><BODY><sc"+"ript type=\"text/javascript\">function myFunction2(){alert('im 2')}</sc"+"ript><FORM><INPUT type=\"button\" onClick=\"myFunction2()\" value=\"function2\" /></FORM></BODY></HTML>";
         document.write(html_text);
         document.close();
      }

      function myFunction2()
      {
         alert("function2 called!");
      }
   </SCRIPT>
   </HEAD>
   <BODY>
      <FORM><INPUT type="button" onClick="myFunction1()" value="function1"

/></FORM>
   </BODY>
</HTML>

请注意,您不能在{0}中包含"<script>",必须将其分解为"<scr" + "ipt>"

答案 1 :(得分:0)

我已将您的第一个代码版本放入http://jsfiddle.net/EwR6X/,并进行了一次小修改 - 在onClick=之后删除了一些不需要的换行符 - 它的工作正常。