2010-07-09 52 views
0

目前我正在爲用戶編寫一個系統,填寫表單時會爲HTML電子郵件創建一個模板,以便能夠與他們的CRM系統一起使用,問題在於您的用戶有點溫順的,爲他們的生活不能理解如何查看頁面的源,以便他們可以複製和粘貼模板代碼到他們的客戶關係管理,我想要的是能夠有一個鏈接/按鈕,用戶可以點擊將在一個窗口中顯示源代碼,我現在是一個JavaScript開發人員,所以任何提示,提示示例都會很棒。javascript頁面源代碼幫助

+1

我無法解析這個問題。你需要包含「所有的HTML」在哪裏?什麼劇本「激發」什麼?電子郵件與此有什麼關係?問題標題與這個問題有什麼關係?很混亂。 – Pointy 2010-07-09 14:18:39

+0

好吧,經過您的編輯它是有道理的:-)謝謝! – Pointy 2010-07-09 14:29:02

回答

1

那麼你可能想要做這樣的事情:抓住包含你的模板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與正則表達式是不可能的。但是,由於腳本標記並不真正包含標記,並且確實以下一個關閉腳本標記結束,所以它不像一般情況那樣可惡。

+0

這很好,有什麼辦法可以去掉顯示在源代碼中的javascript?還有我用來調用你上面寫的代碼的輸入按鈕。 – 2010-07-09 14:58:31

+0

那麼,如果有Javascript與你想要展示的源代碼混合在一起 - 或者,真的,*任何你想隱藏的東西 - 那麼事情就會變得更加棘手。我會推薦我的答案,告訴你可以隱藏腳本元素。 (但是,我不得不想知道在HTML電子郵件模板的中間腳本塊會做什麼)。 – Pointy 2010-07-09 15:08:13

+0

它不在它頭腦中的HTML的中間,它保存了在CRM中工作的模板的重要CSS 。因此,爲什麼我需要刪除它,謝謝你的幫助。 – 2010-07-12 09:18:08

0

我覺得這裏最好的做法是不是真的使用JavaScript伎倆,但到HTML模板複製到一個可見部分和替換「<」與「& LT;」,「>」和「& GT; 「 (根據需要轉義其他位)。

我認爲它會導致用戶很難看到頁面源代碼,並且使用正則表達式來替代這些代碼並不困難。