2013-02-14 194 views
0

我需要注入一些數據,這些數據存在於當前頁面加載的另一個頁面(url)中。下面是我使用的代碼。但它不起作用,下面的代碼有問題,我該如何調試這個問題?使用java腳本注入另一個頁面

function loadHTML(url, storage) 
{ 
    var xhr = createXHR(); 
    xhr.onreadystatechange=function() 
    { 
     if(xhr.readyState == 4) 
     { 
      //if(xhr.status == 200) 
      { 
       storage.innerHTML = getBody(xhr.responseText); 
      } 
     } 
    }; 

    xhr.open("GET", url , true); 
    xhr.send(null); 

} 


function loadWholePage(url) 
{ 
    /** 
     storage is the div id where I want to inject html 
    */ 
    var y = document.getElementById("storage"); 
    loadHTML(url, y); 
} 


window.onload = function() 
{ 
    loadWholePage('link_to_the_page') ; 
}; 

回答

1

您遇到了跨域腳本問題。請參閱Same Origin Policy

據我所知,JSONP可以幫你解決這個問題。

JSONP(JSON with Padding)提供從服務器在不同的領域,通過東西因爲同源策略的典型Web瀏覽器禁止請求數據的方法。

0

可能有一些問題,你的功能createXHR()和getBody()。發佈您爲這些功能編寫的代碼。此外,爲了調試,您可以在調用getBody()之前放置一個console.log,並檢查responseText是什麼。

if(xhr.readyState == 4) 
{ 
if(xhr.status == 200) 
{ 
console.log(xhr.responseText); 
storage.innerHTML = getBody(xhr.responseText); 
} 
} 
相關問題