2012-03-15 92 views
0

我需要使用jQuery編輯HTML文檔,但我嘗試過的所有解決方案都非常嚴格。使用jQuery編輯外部HTML文檔

我從服務器獲取文檔,所以我把它作爲一個字符串。爲了解析文檔,我需要將它添加到DOM中。

當我把它添加到身體,我失去了<html><head><body>標籤,這是由瀏覽器(見https://stackoverflow.com/a/3218941/654179)剝離。

所以我嘗試使用一個iframe,這有點複雜:我必須使用contentWindow.document手動填充它,然後與contents().find('*').html()獲取內容的技巧。也許有一個更簡單,更乾淨的方式來做到這一點。但iframe解決方案還會剝離<html>,<head><body>標籤。看我的例子:http://jsfiddle.net/gNvYn/7/

這裏還有另一個竅門:https://stackoverflow.com/a/6751201/654179但我不能用它來寫入然後閱讀文檔(我需要閱讀它以保存在服務器上)。

那麼,有沒有辦法編輯(寫入,然後讀取)一個HTML文檔而不會丟失結構?

+0

你真的要把它附加到DOM嗎?你嘗試使用$(varContainingHtmlAsString)嗎? – bfavaretto 2012-03-15 18:32:42

+0

獲取文檔實際上可能不是編寫它的問題。你想怎麼做?你有一個服務器端服務接受文本和文件名(例如)並將內容寫入該文件? – 2012-03-15 18:34:44

+0

通過jQuery編輯html文檔是有限的,可能不是最好的解決方案。嘗試php – 2012-03-15 18:36:33

回答

1

如果你需要改變的東西完全在體內,那麼就有一個解決方法。使用javascript的indexOf()和slice()方法將字符串拆分爲前體(其中<body>作爲其最後的字符),後體(其具有</body>作爲其第一個字符)和body(中間的所有內容)。然後將主體插入到DOM中,對其進行操作,再次將其拉出,然後使用javascript +運算符將三者重新粘合在一起,然後發送回去。這是一個小東西,它不是正好你要求什麼,但它應該讓你到你要去的地方。