2013-08-23 28 views
1

我想用它自己的stlyesheet和js將html文件加載到另一頁的div中。將html加載到div而不會丟失js和css

例如HTML文件我想加載將使用

$("#divID").load("htmlpagename.html"); 

當過我加載HTML它的失去是這樣

<html><head>External syle and js</head><body></body></html> 

到其他HTML頁面的div標籤css和我在控制檯拋出一個錯誤,因爲

GET http://localhost:81/projects/js/table.js?_=1377245019877 
jquery.min.js (line 6) 404 Not Found 149ms 
+0

放置( 「#divID).load(htmlpagename.html)的報價,還可以添加$旁邊(」 #divID )..最後,它不會帶入CSS,只是DOM節點,因此我相信HTML結構。無論如何,在同一頁面預加載CSS文件。 – MackieeE

+0

其他HTML內容中是否包含jQuery? –

+4

如果您的html包含'html'標記,則可能需要使用iframe。 – Brewal

回答

2

如果你想保持加載網頁的全部內容,你需要使用一個iframe代替。

jQuery .load()資料爲準信息:

jQuery使用瀏覽器的.innerHTML屬性來解析檢索文檔,並將其插入到當前文檔。在此過程中,瀏覽器通常會過濾來自文檔的元素,例如html,標題或頭元素。因此,由.load()檢索的元素可能與瀏覽器直接檢索文檔的元素不完全相同。

如果你決定使用iframe,這可以幫助你:

$("<iframe />").attr("src", "htmlpagename.html").appendTo("#divID"); 
+0

感謝您的不錯輸入。 – AbhishekJ

+0

沒問題。樂意效勞。 – melancia

+1

不錯的答案,但爲什麼你改變'.appendTo('#divID');'爲'.appendTo($(「#divID」));'? – Brewal

0

You ca在html中使用iframe,那麼爲什麼不使用iframe

<html> 
<head> 
    <!-- Other Head Files and Tags Here --> 
</head> 
<body> 
    <div id="divID"> 
     <iframe src="htmlpagename.html"></iframe> 
    </div> 
</body> 
</html> 
+0

是不是不可能加載html到div而不會丟失附加的CSS和JS而不使用iframe? – AbhishekJ

+1

@ user2710162想想如果直接包含這個html,你的html將會是什麼樣子。你會有幾個'html'標籤,這是無效的。 – Brewal

+0

@ user2710162是的,但然後你需要調用的CSS標題和JavaScript頭標記,不推薦.. – zzlalani

0

試試這個:

$('<iframe />').attr('src', 'htmlpagename.html').appendTo('#divID'); 

fiddle