功能:用一个文本框接收输入的值并传递给iframe中,用str来接收iframe里面的html内容,并成功弹出str的值。
html代码如下:
<iframe src="" name="mainFrame" id="mainFrame" /></iframe> <input type="text" name="lj" value="" ><!--用于接收网址后将网址传递给iframe-->
jquery库用的是1.8.3的,
<script type="text/javascript" src="http://www.yilingsj.com/skin/yilingsj/js/jquery-1.8.3.min.js"></script> <script> $(function(){ $('input[name="lj"]').blur(function(){ $('iframe').attr('src',$(this).val());/*获取当前输入框的值并将值传递给iframe*/ //str=iframe里面的html内容; //这里不知道怎么写,网上找的全是错误的,弹不出iframe里面的内容!!! alert(str); }); }); </script>
在网上找了好多都不能用,求大神
补充说明一下:比如说,我在输入框里面输入百度首页的地址,此时iframe可以加载,现在用str来接收iframe里面的html。总之我就是想获取一个网页的所有html内容,求大神帮忙,谢谢
使用contents()方法。
$("#myiframe").contents().find("#myContent")
不行的,我在网上找了很多,大部分都是只弹出个“undefind”,有的只能弹出<head></head><body></body>却不能弹出完整的信息,建议大神在以后帮别人回答问题请亲自测试下结果再回复,谢谢
@繁华已逝:
这是官方推荐的方法,至于为什么不行,还可以有其它原因存在,建议你查下其它问题。
@XiaoFaye: 不知道是不是因为跨域导致失效
这是不能实现的,因为浏览器的跨域问题阻止了,即使用 ajax都不行。
两种方案:
1.IE8,上述页面是保存成html使用ie8打开,上述代码可以生效,因为本地文件没有域,测试过IE8有效,但是效率低下,大量运行后容易卡死
2.通过服务器中间件做代理,如IIS,该方案比较可行
感觉ie8不是很好的办法,低版本ie打开页面的速度本来就慢,
IIS的话,如果自己没有网站那也就配置不了,
我在网上找到了一个http://www.gbtags.com/technology/javautilities/20120720jsoupjquerysnatchpage/
但是不知道为什么案例点击是无效的,纠结。。。。
其实我的要求很简单,就是想获取一个页面中某一小块源码,不知道不用iframe还有其它标签可以实现功能不
@繁华已逝: 纯js脚本,不靠服务器做中间代理的话那是不可能的,因为这是浏览器的安全机制啊。
你的应该是跨域的,所以获取不了
对啊,就是要跨域获取页面内容。
@繁华已逝: 这是IFrame的Same Origin Policy 的安全限制。如果你对Iframe的内容没有控制的话(比较写JS在Iframe中),这基本上是实现不了的,死心吧,少侠。