簡體   English   中英

javascript頁面源幫助

[英]javascript page source help

當前,我正在為一個用戶編寫一個系統,該系統在填寫表單時會為HTML電子郵件創建一個模板,該模板將可與他們的CRM系統一起使用,問題是您的用戶有點服從,並且對他們的生活不屑一顧。無法理解如何查看頁面的源代碼,因此他們可以將模板代碼復制並粘貼到其CRM中,我想要的是能夠有一個鏈接/按鈕,用戶可以單擊該鏈接/按鈕以在頁面中顯示源代碼。窗口,我現在是一名JavaScript開發人員,因此任何提示,提示示例都將非常有用。

好吧,您可能想要執行以下操作:抓取包含模板HTML(或任何內容)的元素的“ innerHTML”。 然后打開一個新窗口,將HTML放入其中,並用<pre>塊包圍。 您還將需要用適當的HTML實體替換所有重要的標記字符,並可能用<br>元素替換換行符。

它可能與此接近(但未經測試):

var html = document.getElementById('whatever').innerHTML
  .replace(/&/g, '&amp;')
  .replace(/</g, '&lt;')
  .replace(/>/g, '&gt;')
  .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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM