【问题标题】:call javascript function from html generated by another javascript function从另一个 javascript 函数生成的 html 调用 javascript 函数
【发布时间】:2012-09-19 13:24:38
【问题描述】:

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

【问题讨论】:

标签: javascript


【解决方案1】:

这会起作用

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

请注意,您不能在字符串中包含"&lt;script&gt;",您必须将其拆分为"&lt;scr" + "ipt&gt;"

【讨论】:

  • 页面渲染后也不能document.write
  • 对不起,我知道这很丑,但他要求的 :( 不知道为什么
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2019-04-24
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多