我一直在尝试这一点,现在看看类似的问题的其他答案SO,但是当我试图改变一个iframe的src属性,它更新它为整个窗口。这里是我使用的以下代码工作正常(无jquery):
<html> <head> <style type="text/css"> iframe#ifrm { border:none; padding:.5em; margin:1.5em 0 1em; width:100%; height:100%; } </style> <script src="./js/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> // <![CDATA[ // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // this is the function I'm trying to replace: function loadIframe(iframeName,url) { if ( window.frames[iframeName] ) { window.frames[iframeName].location = url; return false; } return true; } // ]]> </script> </head> <body> <ul> <li><a href="http://www.google.com/" onclick="return loadIframe('ifrm',this.href)">Page 1</a> </li> <li><a href="tabs.html" onclick="return loadIframe('ifrm',this.href)">Page 2</a></li> </ul> <div class="iframe"> <iframe name="ifrm" id="ifrm" src="tabs.html" frameborder="0"> Your browser doesn't support iframes.</iframe>
正如我所说,我试过
$('#ifrm').attr('src',"http://www.google.com")
它显示页面,但不显示在iframe中。我真的只是学习jquery,但我不能弄清楚与我的情况有什么不同于其他类似的问题,像这样:
谢谢。
解决方法
应该工作。
这里有一个工作示例:
function loadIframe(iframeName,url) { var $iframe = $('#' + iframeName); if ( $iframe.length ) { $iframe.attr('src',url); return false; } return true; }