2012-09-27 196 views
0

我是javascript中的新手。正如標題所說,我試圖從另一個javascript函數生成的html中調用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> 

當我運行螢火蟲時,出現錯誤提示「m​​yFunction2未定義」。我想我必須把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> 

但是,這種變化後,我得到了一些凌亂的結果和螢火蟲說:「未終止的字符串字面HTML_TEXT變種= ...」。有什麼建議麼? 另外,我的實際myFunction2真的很大,如果我不得不將它插入到myFunction1生成的html中,是否有一種很好的方法來放置它?另外,教師不希望我們使用單獨的文件。謝謝!

+1

[您不能在javascript中使用''](http://www.wwco.com/~wls/blog/2007/04/25/using-script-in-a-javascript-文字/)。 – jbabey

+2

你不能使用「內部」字符串,並且'相同'。您需要轉義字符串內的引號。 –

+0

你可能不會在頁面渲染後使用document.write – mplungjan

回答

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> 

請注意,您不能在sttring包括"<script>",你必須打破它以"<scr" + "ipt>"

+0

演示http://jsfiddle.net/WGJx9/ –

+1

你也可以在頁面渲染後document.write – mplungjan

+0

同意,但它只是工作=)) –

相關問題