使用javascript注入另一个页面

时间:2013-02-14 04:59:05

标签: javascript html ajax

我需要在当前页面加载时注入另一个页面(url)中存在的一些数据。下面是我正在使用的代码。但它不起作用,下面的代码是否有问题,如何调试此问题?

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') ;
};

2 个答案:

答案 0 :(得分:1)

您遇到了跨域脚本问题。请参阅Same Origin Policy

据我所知,JSONP可以帮助您解决这个问题。

JSONP(JSON with Padding)提供了一种从不同域中的服务器请求数据的方法,这是典型Web浏览器因相同的原始策略而禁止的。

答案 1 :(得分:0)

您的函数createXHR()和getBody()可能存在一些问题。发布您为这些功能编写的代码。此外,为了调试,你可以在调用getBody()之前放入console.log并检查什么是responseText。

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