[英]javascript page source help
當前,我正在為一個用戶編寫一個系統,該系統在填寫表單時會為HTML電子郵件創建一個模板,該模板將可與他們的CRM系統一起使用,問題是您的用戶有點服從,並且對他們的生活不屑一顧。無法理解如何查看頁面的源代碼,因此他們可以將模板代碼復制並粘貼到其CRM中,我想要的是能夠有一個鏈接/按鈕,用戶可以單擊該鏈接/按鈕以在頁面中顯示源代碼。窗口,我現在是一名JavaScript開發人員,因此任何提示,提示示例都將非常有用。
好吧,您可能想要執行以下操作:抓取包含模板HTML(或任何內容)的元素的“ innerHTML”。 然后打開一個新窗口,將HTML放入其中,並用<pre>
塊包圍。 您還將需要用適當的HTML實體替換所有重要的標記字符,並可能用<br>
元素替換換行符。
它可能與此接近(但未經測試):
var html = document.getElementById('whatever').innerHTML
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\r?\n/g, '<br>');
var w = window.open('', 'SourceWindow', 'height=500,width=600');
var d = w.document.open();
d.write('<html><body><pre>' + html + '</pre></body></html>');
d.close();
編輯 -如果要剝離腳本塊,可以將此“替換”調用添加到上述系列中:
.replace(/<\s*script[^>]*>.*?<\/\s*script[^>]*>/g, '')
這有點不穩定,因為一般來說,實際上不可能嘗試使用正則表達式識別HTML。 但是,由於腳本標簽實際上並不包含標記,而且肯定以下一個關閉的腳本標簽結尾,因此與一般情況相比,它沒有那么令人討厭。
我認為此處的最佳做法並不是真正使用Javascript技巧,而是將HTML模板復制到可見部分,然后將“ <”替換為“&lt;”,“>”替換為“&gt;” (根據需要轉義其他位)。
我認為這會迫使用戶自己查看頁面源,因此可用性很差,並且使用正則表達式進行替換並不難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.