js 根据url获取页面内容

时间:2022-08-27 22:03:45
有一个url,例如http://www.xxx.com/con.html
根据这个url,我想用 js 获取这个con.html里面的内容,请问如何写法?

26 个解决方案

#1


该回复于2015-05-26 11:20:15被管理员删除

#2


<html>
<body>
<input type="button" onclick="dl()" value="确定">
<iframe id="haha" name="haha" src="xx.html"></iframe>
<script>
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;}
function dl()
{
alert($f("haha").document.body.innerHTML);
}
</script>
</body>
</html>

#3


跨域执行 不好整

#4


解决不了...

#5


把conn.html文件中的url读到页面一隐藏文本框中,再用js调用

alert(document.forms[0].elements[..].value);

#6


跨域真的郁闷~~~~~~~

#7


跨域的 一般都用ajax+代理

#8


我在用dom 的load("xxx")时在本地用IE6测试成功,结果放到服务器时却出现个“拒绝访问”....
而FF中马上就报错。

#9


不可用到后台,只在前台可否解决跨域问题?
就是说,不能用到jsp、php、asp等语言,只能用到js与html,能实现跨域吗?

#10


只能用iframe了..

#11


ajax+代理我没试过..不知道有没有人有代码..

#12


纯js不可能

#13


引用 2 楼 shermy 的回复:
<html> 
<body> 
<input type="button" onclick="dl()" value="确定"> 
<iframe id="haha" name="haha" src="xx.html"> </iframe> 
<script> 
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;} 
function dl() 

alert($f("haha").document.body.innerHTML); 

</script> 
</body> 
</html>


正解

#14


引用 13 楼 avon520 的回复:
引用 2 楼 shermy 的回复:
<html> 
<body> 
<input type="button" onclick="dl()" value="确定"> 
<iframe id="haha" name="haha" src="xx.html"> </iframe> 
<script> 
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;} 
function dl() 

alert($f("haha").document.body.innerHTML); 

</script> 
</body> 
</html> 
 

正解


呵呵,这样不行的。
这样跨域是不允许的,试试吧:iframe的src="http://esoft.bokee.com/5469097.html",点按钮时会有“拒绝访问”的错误。
iframe只能显示这个link的内容,在本地不能获取这个页面的相关内容,与之交互。
这就是跨域问题。

#15


ajax+代理:这个代理就是要用到jsp、asp、php等,
即在domain1.com站点中使用动态网页(ASP,PHP,JSP等)作为代理页面读取domain2.com站点中的资源, 然后在domain1.com站点中使用AJAX读取本域下的代理页面。

#16


js 是不能跨域的.额...

#17


不太明白,看过。  

#18


看看有没有办法用JS把那个页面下载下来。
或者用Dom遍历con.html整个Document的所有节点。

#19


跨域可以通过代理实现
只通过js+html是不可以的

#20


跨域
JS不行

#21


要用ajax,其实就是用xmlHTTP,搜索下ajax例子很简单的可以做到的。

#22


写一个网页抓取的方法,直接读取就可以了.APS.NET ,JAVA 等都可以做到.
ASP.NET 读取的方法
//--需要引用 using System.Net 以及 using System.IO;
private string GetContentFromUrll(string _requestUrl)
{
     string _StrResponse ="";
     HttpWebRequest _WebRequest = ( HttpWebRequest )WebRequest.Create( _requestUrl );
     _WebRequest.Method = "GET";
     WebResponse _WebResponse = _WebRequest.GetResponse();
     StreamReader _ResponseStream = new StreamReader( _WebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
            _StrResponse = _ResponseStream.ReadToEnd();
            _WebResponse.Close(); 
            _ResponseStream.Close();
            return _StrResponse;        
}

#23


JS的话,通过AJAX应用上面的方法就可以了

#24


引用 11 楼 sagadan 的回复:
ajax+代理我没试过..不知道有没有人有代码..

 我用过这个,不是很方便,局限性很大。建议用webservice

#25


引用 21 楼 nicholsky 的回复:
要用ajax,其实就是用xmlHTTP,搜索下ajax例子很简单的可以做到的。

ajax本身是不可以跨域

#26


ok~~~, It`s over.

#1


该回复于2015-05-26 11:20:15被管理员删除

#2


<html>
<body>
<input type="button" onclick="dl()" value="确定">
<iframe id="haha" name="haha" src="xx.html"></iframe>
<script>
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;}
function dl()
{
alert($f("haha").document.body.innerHTML);
}
</script>
</body>
</html>

#3


跨域执行 不好整

#4


解决不了...

#5


把conn.html文件中的url读到页面一隐藏文本框中,再用js调用

alert(document.forms[0].elements[..].value);

#6


跨域真的郁闷~~~~~~~

#7


跨域的 一般都用ajax+代理

#8


我在用dom 的load("xxx")时在本地用IE6测试成功,结果放到服务器时却出现个“拒绝访问”....
而FF中马上就报错。

#9


不可用到后台,只在前台可否解决跨域问题?
就是说,不能用到jsp、php、asp等语言,只能用到js与html,能实现跨域吗?

#10


只能用iframe了..

#11


ajax+代理我没试过..不知道有没有人有代码..

#12


纯js不可能

#13


引用 2 楼 shermy 的回复:
<html> 
<body> 
<input type="button" onclick="dl()" value="确定"> 
<iframe id="haha" name="haha" src="xx.html"> </iframe> 
<script> 
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;} 
function dl() 

alert($f("haha").document.body.innerHTML); 

</script> 
</body> 
</html>


正解

#14


引用 13 楼 avon520 的回复:
引用 2 楼 shermy 的回复:
<html> 
<body> 
<input type="button" onclick="dl()" value="确定"> 
<iframe id="haha" name="haha" src="xx.html"> </iframe> 
<script> 
$f=function(p){return document.frames?document.frames[p]:$(p).contentWindow;} 
function dl() 

alert($f("haha").document.body.innerHTML); 

</script> 
</body> 
</html> 
 

正解


呵呵,这样不行的。
这样跨域是不允许的,试试吧:iframe的src="http://esoft.bokee.com/5469097.html",点按钮时会有“拒绝访问”的错误。
iframe只能显示这个link的内容,在本地不能获取这个页面的相关内容,与之交互。
这就是跨域问题。

#15


ajax+代理:这个代理就是要用到jsp、asp、php等,
即在domain1.com站点中使用动态网页(ASP,PHP,JSP等)作为代理页面读取domain2.com站点中的资源, 然后在domain1.com站点中使用AJAX读取本域下的代理页面。

#16


js 是不能跨域的.额...

#17


不太明白,看过。  

#18


看看有没有办法用JS把那个页面下载下来。
或者用Dom遍历con.html整个Document的所有节点。

#19


跨域可以通过代理实现
只通过js+html是不可以的

#20


跨域
JS不行

#21


要用ajax,其实就是用xmlHTTP,搜索下ajax例子很简单的可以做到的。

#22


写一个网页抓取的方法,直接读取就可以了.APS.NET ,JAVA 等都可以做到.
ASP.NET 读取的方法
//--需要引用 using System.Net 以及 using System.IO;
private string GetContentFromUrll(string _requestUrl)
{
     string _StrResponse ="";
     HttpWebRequest _WebRequest = ( HttpWebRequest )WebRequest.Create( _requestUrl );
     _WebRequest.Method = "GET";
     WebResponse _WebResponse = _WebRequest.GetResponse();
     StreamReader _ResponseStream = new StreamReader( _WebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
            _StrResponse = _ResponseStream.ReadToEnd();
            _WebResponse.Close(); 
            _ResponseStream.Close();
            return _StrResponse;        
}

#23


JS的话,通过AJAX应用上面的方法就可以了

#24


引用 11 楼 sagadan 的回复:
ajax+代理我没试过..不知道有没有人有代码..

 我用过这个,不是很方便,局限性很大。建议用webservice

#25


引用 21 楼 nicholsky 的回复:
要用ajax,其实就是用xmlHTTP,搜索下ajax例子很简单的可以做到的。

ajax本身是不可以跨域

#26


ok~~~, It`s over.