2010-08-25 156 views
5

如何加載div內的html頁面。使用「對象」標記正在加載,但我認爲這不是一個好方法。它不是一個外部文件。道場對此有好處嗎?在div中加載html頁面

+2

沒有全光照g iframes :) – coder247 2010-08-25 09:18:20

回答

1

這也適用於使用... ...道場

<script type="text/javascript"> 
var url = dojo.moduleUrl("dijit.form", "help.html"); 
dojo.xhrGet({ 
    url: url, 
    load: function(html){ 
     dojo.byId("mycontent").innerHTML = html; 
    } 
}); 
</script> 

<div id="mycontent"> 

</div> 

更新:

在道場1.7+,使用require.toUrl代替dojo.moduleUrl

3

我不完全確定你在找什麼,但是如果你希望在另一個HTML文檔中顯示HTML文檔,那麼我認爲唯一的方法就是使用iframe。看看這個教程:http://www.designplace.org/tutorials.php?page=1&c_id=1

也許你可以將代碼加載HTML文檔,並奪走了HEAD和包裝BODY元素,然後插入DIV元素。

編輯:啊,沒有iframes你說。那麼,我建議後者。 ^^

12

使用jQuery

$("#mydiv").load("myexternalfile.html"); 
+2

這是否會過濾掉不需要的元素,例如'HTML','HEAD'和'BODY'?如果是這樣,那麼這將是相當優雅的解決方案。比嘗試手動插入要好得多。 – gablin 2010-08-25 09:27:24

+1

不會從「myexternalfile.html」中提取所有html,然後將其放入div中。 – Starx 2010-08-25 09:31:34

0

你仍然可以使用jquery通過ajax調用來加載內容。取出結果並刪除<body>及其前面的所有內容,並刪除它後面的所有內容。你可以使用正則表達式來確保包含body標籤的任何屬性。

然後你留下了原始的html,你可以使用jQuery添加到div中。

jQuery.ajax({ 
    url: 'page.html', 
    success: function(data, textStatus, XMLHttpRequest) { 
     data = data.replace(/.*<body.*?>/gi,''); 
     data = data.replace(/</body>.*/gi,''); 
     jQuery('#myDiv').html(data); 
    } 
}); 

我的正則表達式是有點生疏了,所以你可能需要調整的是:)