jquery – 使用javascript更改iframe源

我使用了一个iframe:
<iframe style='width: 330px; height: 278px' scrolling='no' name="iframeId" class="advPlayer" id="iframeId" frameborder="0" src='../../player/iabpreview.PHP?adid=<?PHP echo $selectedAdIdx ?>&amp;autoplay=true'></iframe>

每当我点击< div>,我必须更改iframe的来源.我使用以下代码

if ($j.browser.msie) {            
  frames['iframeId'].window.location="../player/iabpreview.PHP?adid="+adId+"&autoplay=true";
}else {
  $j(".advPlayer").eq(0).attr("src","../player/iabpreview.PHP?adid="+adId+"&autoplay=true");    
}

这适用于Firefox,但不适用于Internet Explorer.

什么代码也可以用于Internet Explorer?

解决方法

你不应该用户的浏览器检测,而是特征检测.这是最安全的方式:
function SetIFrameSource(cid,url){
  var myframe = document.getElementById(cid);
  if(myframe !== null){
    if(myframe.src){
      myframe.src = url; }
    else if(myframe.contentwindow !== null && myframe.contentwindow.location !== null){
      myframe.contentwindow.location = url; }
    else{ 
      myframe.setAttribute('src',url); 
    }
  }
}

只需测试src属性是否可用.如果没有,测试内容窗口,最后一次尝试是setAttribute.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...