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 が定義されていません」というエラーが表示されました。myFunction1 によって生成された html コードに myFunction2 を配置する必要があると思います。そこで、コードを次のように変更しました。

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

ただし、この変更の後、厄介な結果が得られ、firebug には「var html_text=... の文字列リテラルが終了していません」と表示されます。助言がありますか?また、私の実際の myFunction2 は非常に大きいです。myFunction1 によって生成された html に挿入する必要がある場合、それを挿入する良い方法はありますか? また、インストラクターは、別のファイルを使用することを望んでいません。ありがとう!

4

2 に答える 2

0

コードの最初のバージョンをhttp://jsfiddle.net/EwR6X/に入れました。小さな修正を 1 つ加えると、後で不要な改行をいくつか削除しonClick=て、問題なく動作します。

于 2012-09-27T17:28:13.277 に答える
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 に答える