pyh 修改addJS時預設的位置
阿新 • • 發佈:2019-01-06
最近在做一個小工具,用於在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 標籤已經移到末尾了