2012-06-06 57 views
4

而不是使用iframe,我想使用以下方法更新页面的中心窗格。使用innerHTML重新加载页面的中心窗格

我想获得以下帮助。 如果有另一个HTML页面我想加载到中心窗格中,那么它的正确语法是什么?

document.getElementById('centerPane').innerHTML.??? = 'SampleHTML.htm' ; 

我需要在innerHTML之后获得什么属性?

或者我应该使用一些其他调用。

+1

你需要AJAX在这里。试试jQuery的AJAX调用。 – zgood

回答

3

如果你不使用jQuery或具有内置AJAX方法的另一个库:

var setHtml = function (element, url) { 

    var xhr = new XMLHttpRequest(); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4 && xhr.status == 200) { 
      element.innerHTML = xhr.responseText; 
     } 
    }; 

    xhr.timeout = 10000; 
    xhr.open('GET', url, true); 
    xhr.send(); 
}; 

然后,只需调用setHtml功能是这样的:

setHtml(document.getElementById('centerPane'), 'SampleHTML.htm'); 
+0

+1直接进入裸骨JS答案。 – haylem

+0

语法错误。它应该是'setHtml(document.getElementById('centerPane'),'SampleHTML.htm');' –

+0

@Ashshin,很好catch – tjscience

3

如果您是通过使用jQuery任何机会,它可以是简单的:

$( '#centerPage')负载( 'SampleHTML.htm');

+0

我希望他使用jQuery,否则他可能不得不手动拼凑一个XHR对象。 –

+0

感谢所有的快速反应......我没有使用jQuery。我正在使用html/dojo。中心窗格中的数据通过dojox.grid.DataGrid呈现。还有什么建议?再次感谢.. – dojomedojo

1

你必须使用ajax来做到这一点。例如:http://jsfiddle.net/wGw9X/1/

您可以(应该)也使用jQuery来简化它,并使其更加跨浏览器编译。在jQuery中,它只是一行代码。

编辑:更新jsfiddle链接使用更好的示例加载文件。

+0

感谢所有的快速反应...我没有使用jQuery。我正在使用html/dojo。中心窗格中的数据通过dojox.grid.DataGrid呈现。我使用dojox.data.JsonRestStore来获取数据,然后渲染DataGrid。我如何通过jQuery做到这一点?还有什么建议?再次感谢。 – dojomedojo