JavaScript gestore events in ASP.NET

Ho il seguente controllo iframe (destinato ad essere un button come Facebook):

<iframe id="likeButton" src="http://www.facebook.com/plugins/like.php?href=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" onprerender="setupLink()" </iframe> 

Ho la function javascript sopra definita come segue:

 <script type="text/javascript"> function setupLink() { var iframe = $("#likeButton"); var newSrc = iframe.attr("src"); newSrc += encodeURIComponent(location.href) + lblKey.Text; iframe.attr("src", newSrc); }; </script> 

lblKey è un'etichetta della pagina ASP.NET che fa riferimento alla sezione specifica della pagina. Tuttavia, per quanto posso determinare, questa function non viene chiamata (se metto un avviso () all'inizio non port nulla). Sono nuovo per il javascript, ma guardando in giro per alcuni articoli sul web indicherebbe che questo dovrebbe aggiornare la properties; src sull'IFrame.

EDIT:

Ho anche provato quanto segue:

 <script type="text/javascript" > $(function() { var iframe = $("#likeButton"); var newSrc = iframe.attr("src"); newSrc += encodeURIComponent(location.href) + '<%= lblKey.Text %>'; iframe.attr("src", newSrc); }); </script> 

Che non funziona, ma neppure:

 <script type="text/javascript" > $(function() { alert('Hello'); }); </script> 

Hai pensato di utilizzare l'evento onload e di passare un riferimento all'eframe?

 <script type="text/javascript"> function change_source(iframe) { if (iframe.src.indexOf('facebook') < 0) { iframe.src = 'http://www.facebook.com/plugins/like.php?href=<%= lblKey.Text %>'; } } </script> 

HTML qualcosa di simile …

 <iframe id="likeButton" src="about:blank" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" onload="change_source(this);" </iframe> 

asp.net events (come prerender) non si applicano altrove (come javascript)

supponendo che stai usando jquery, avrei avvolto in un $ (), che è uno stenodo per "Esegui il seguente quando la pagina è caricata abbastanza per iniziare a manipolarla". Inoltre, i controlli asp.net hanno un diverso api quindi gli elementi dom, quindi se si desidera utilizzare tale api è necessario avvolgerlo in un tag scriptlet

 <script type="text/javascript"> $(function () { var iframe = $("#likeButton"); var newSrc = iframe.attr("src"); newSrc += encodeURIComponent(location.href) + "<%= lblKey.Text %>"; iframe.attr("src", newSrc); }); </script>