2010-10-08 119 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