私は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 に挿入する必要がある場合、それを挿入する良い方法はありますか? また、インストラクターは、別のファイルを使用することを望んでいません。ありがとう!