2011-06-08 68 views
1

因爲我需要將網頁保存爲報表功能的mht文件格式。但是,我的頁面是由Javascript框架(dojo)和html源代碼構建的。用JavaScript框架將網頁轉換爲靜態html頁面

<div id="main"> 
    <div width="99%"> 
    <table id="contents"> 
     <tr> 
     <td id="con_right"></td> 
     </tr> 
    </table> 
    </div> 
</div> 

同時,我還有一個控制器來動態地爲這些DOM對象設置報告html。但我無法將此頁保存爲mht文件。因爲「另存爲」只是基於靜態HTML。

所以,我需要幫助將JavaScript中的動態DOM對象轉換爲靜態HTML頁面。

PS。 我可以包含任何其他Javascript框架。如果有一個好的和快速的變換解決方案。

+0

你只是想保存生成的源代碼? – kinakuta 2011-06-08 17:33:38

+0

是的!我想保存動態生成的源代碼。我可以在JavaScript中獲取DOM對象,但我不知道如何將它推送到保存爲mht文件的新頁面。 – Brian 2011-06-08 17:59:00

+0

如果您從Firefox中的Web開發人員工具欄查看生成的源代碼,它將打開一個窗口,其中包含您可以保存的源代碼。我不確定這是您保存的意思,或者您的要求是您必須以編程方式執行此操作。 – kinakuta 2011-06-08 18:12:08

回答

1

Here是如何打印出任何DOM節點的源代碼的示例 - 您應該可以使用它來打印整個頁面的HTML。

編輯:你甚至可以做一些簡單:

print(document.body.innerHTML); 

EDIT2:

既然你想生成的HTML是一個靜態的HTML頁面,幾乎是唯一你會(有點)可靠地通過服務器來做到這一點。將您的HTML化DOM發送到後端,並將回調重定向到使用該HTML生成的新靜態頁面。

實現是你和你的後端軟件之間,但它可以有以下種類形式:

前端:

//define this function somewhere 
redirectFunction({ url: '/backend/create-static-page' 
        , params: { html: document.body.innerHtml } 
        }) 

後端:

function create_static_page (req, res) { 
    res.send(req.html) 
} 
+1

感謝您的參考。但我想將DOM對象中的所有動態html擴展爲當前靜態html頁面以保存mht格式文件。 – Brian 2011-06-08 18:27:00

+0

補充說明 – 2011-06-09 15:02:25

+0

謝謝,我認爲這樣可以解決我的問題:) – Brian 2011-06-10 09:54:41