2010-10-08 114 views
3

我有以下的iframe控制(旨在是像按鈕一個Facebook):JavaScript的事件處理程序在ASP.NET

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

我有高於此定義的JavaScript功能如下:

<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是ASP.NET頁面上引用頁面特定部分的標籤。但是,據我可以確定,這個函數不會被調用(如果我在開始時提醒alert(),它不會帶來任何提示)。我是新來的JavaScript,但環顧網絡上的一些文章將表明,這應該更新iframe上的src屬性。

編輯:

我也曾嘗試以下操作:

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

    iframe.attr("src", newSrc); 
}); 
</script> 

不工作,但同樣沒有:

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

聽起來像是你有JavaScript錯誤,例如沒有正確包含jQuery,你有沒有檢查你的控制檯? – 2010-10-17 10:52:15

回答

0

你有沒有使用onload事件,並傳遞給一個參考考慮iframe?

<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這樣的事情...

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

asp.net事件(如預渲染)唐不適用於其他任何地方(如JavaScript)

假設你正在使用jquery,我會將它包裝在一個$(),w這是「一旦頁面加載足夠開始操作就執行以下內容的簡寫」。此外,asp.net控件有不同的API,然後DOM元素,所以如果你想使用這個API,你需要將它包裝在一個小腳本標籤

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

     iframe.attr("src", newSrc); 
    }); 
</script> 
+0

謝謝你。但是如果我把警報(newSrc); iframe.arrt之上(...然後它什麼都不做。 – 2010-10-08 12:44:05