[英]How can I extract the html code for a DOM object generated by javascript?
[英]HTML code assign to a Javascript DOM Object
我的最終目標是從生成的HTML頁面創建Word DOCX文件。 為此,我使用了來自問題的信息, 從HTML <figure>和<figcaption>到Microsoft Word ,其中一個答案提到了一個JavaScript插件,該插件會將HTML轉換為DOCX( Mark Windsoll的jquery插件 ,將HTML轉換為Word )。
該答案和插件中的示例被用作以下代碼段的基礎。 在我的程序中,我以前創建了一個HTML頁面(在WordPress循環中)(不僅是頁面元素,而是整個格式正確的HTML頁面),其中包含我想要轉換為DOCX的內容。 另外,我已經加載了“ HTML to Word插件”所需的JS和CSS。
目的是采用創建的HTML( $post_output
)並使用wordExport()
函數(將HTML轉換為DOCX的JS)創建DOCX文件,然后將其保存。
<?php
$x = $post_output ; // $post_output contains an HTML page with doctype/head/body/etc that was generated by the loop
$dom = new DOMDocument;
libxml_use_internal_errors(false); // supress errors
$dom->loadHTML($x, LIBXML_NOERROR); // supress errors
?>
<script type="text/javascript">
$dom.wordExport();
</script>
我得到的錯誤是腳本中的$dom
對象不可用,因此未調用wordExport()
函數。
因此,我需要一種將整個HTML字符串( $x
)加載到JavaScript DOM對象中的方法,以便wordExport()
函數(即HTML到DOCX轉換器)可以工作。 (已添加) HTML“字符串”不是瀏覽器中的頁面,而是分配給PHP字符串變量的生成的“ HTML頁面源”。)
新增 HTML字符串需要由Word-to-DOCX jQuery插件處理。 這可能嗎?
不要被JS和PHP都具有DOM API的實現所迷惑; 這並不意味着創建PHP對象將對您運行JS方法有用。 請記住,在所有PHP完成之后,JS在瀏覽器中運行,並且看到的只是您發送到瀏覽器的輸出。
因此,您需要做的是echo
HTML的整個字符串,以便可以在JS代碼中進行選擇。 您可以將其放入JS字符串中(基本上用'
標記將其括起來,但是使用json_encode
是一種轉義內容中所有引號等的便捷方法); 或者您可以將其作為頁面上的隱藏內容回顯。 然后通過jQuery()
運行它以獲取適當的對象,並使用您的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.