繁体   English   中英

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

[英]call javascript function from html generated by another javascript function

我是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中,是否有很好的方法放置它? 另外,讲师不希望我们使用单独的文件。 谢谢!

这会起作用

<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>"

我已经将您的第一个版本的代码放入http://jsfiddle.net/EwR6X/中 ,并做了一个小修改-在onClick=之后删除了几个不需要的换行符-效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM