2010-07-09 45 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; “ (根据需要转义其他位)。

我认为它会导致用户很难看到页面源代码,并且使用正则表达式来替代这些代码并不困难。