JS 客户端获取 http://www.baidu.com/index.html 的源码,有办法吗?不能用服务器中转。
window.onerror=function(){return true;} 

  function test(){
var oHead = document.getElementsByTagName('HEAD').item(0); 

var script= document.createElement("script"); 
script.type = "text/javascript"; 
script.src="http://www.baidu.com/index.html";
script.id="scriptAjax";
script.onload = script.onreadystatechange = function() {  
if (!this.readyState || this.readyState === "loaded" ||    this.readyState === "complete" ) { 
script.onload = script.onreadystatechange = null;  
//script.src.innerHTML ???  这里加载成功了,但获取不到内容。
 alert ( script.innerHTML ); //空
}};  
oHead.appendChild( script); 
}

解决方案 »

  1.   

    可以。
    但baidu 不行比如你要在a.com 获取b.com那么你需要对a.com及b.com都有控制权限,这样是可以实现js的纯js跨域获取的
      

  2.   

    这个和跨域扯不上关系。
    浏览器中的js引擎从不对script的src属性进行检查,并且允许任意的域中的文件被加载,这本身就是一个允许的操作。
      

  3.   


    那有别的方法可以获取http://www.baidu.com/index.html 的内容吗?
      

  4.   

    Jquery.ajax({dataType:'jsonp',url:'xxx'})
      

  5.   

    除非目标HTML按照JS引用的方式进行组织,比如存到一个合法的JS变量里,否则普通这样是得不到其内容的。JS的SRC只是对浏览器来说可以去读取并执行目标SRC的内容,反过来浏览器认为没必要把这个内容清单再返回给JS。以前用IFRAME可以得到里面内容的源码。但现在新浏览器据说都禁止了这个功能。楼主也应该看了一些资料,干嘛钻牛角尖呢。
      

  6.   

    只有当你script的src里的页面无错,这才能获取该页面里的js对象,如果出错,只能免谈了,还是用服务端语言吧
      

  7.   

    如果可以获取的话 
    岂不是 我直接用js就可以控制所有的网页了
    甚至可以实现一些很阴暗的东西
    所以现在浏览器 不给你 非同域的js进行交互