0

我是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 is not defined”。我想我必须将 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中,有没有好办法放进去?此外,讲师不希望我们使用单独的文件。谢谢!

4

2 回答 2

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>

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

于 2012-09-27T17:27:56.073 回答
0

我已将您的第一个版本的代码放入http://jsfiddle.net/EwR6X/,并进行了一个小修改 - 删除了几个不需要的换行符onClick=- 它工作得很好。

于 2012-09-27T17:28:13.277 回答