1. 程式人生 > >pyh 修改addJS時預設的位置

pyh 修改addJS時預設的位置

最近在做一個小工具,用於在html裡展示兩個字串不一致的地方。

用到了一些js的程式碼,包括開源庫和自己寫的程式碼。由於開源庫程式碼量很多,直接寫在html裡會導致檔案很大,不方便轉發、檢視。

只能用<script src=''></srcirpt> 這樣的形式。

由於產出html的程式碼用的是python,使用pyh,最終產出的html如下:


注意一下js的位置,是放在head裡的。

lib/report.js 這個程式碼,會對html裡的內容進行修改,具體如下:



可以看到,這個js操作的物件是group_one這個tbody,也就是一個表格。

但是開啟html,發現並沒有出現想要的效果,並且有一個報錯:



其實問題的原因在於載入 report.js 時,還沒有載入 tbody,所以 document 裡是找不到 group_one 這個物件的。

解決辦法:把 report.js 放到 html 的末尾

但是載入js用的是 pyh 提供的方法,具體程式碼如下:


addJS定義如下:


可以看到,js 加到 self.head 裡的

這就意味著不管在哪裡呼叫 addJS,最終輸出 html 時,<script> 標籤都會在 head 裡。

解決方法如下:

修改 addJS 方法:


修改後,重新產出的 html 如下:


可以看到 script 標籤已經移到末尾了