目前我正在为用户编写一个系统,填写表单时会为HTML电子邮件创建一个模板,以便能够与他们的CRM系统一起使用,问题在于您的用户有点温顺的,为他们的生活不能理解如何查看页面的源,以便他们可以复制和粘贴模板代码到他们的客户关系管理,我想要的是能够有一个链接/按钮,用户可以点击将在一个窗口中显示源代码,我现在是一个JavaScript开发人员,所以任何提示,提示示例都会很棒。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?还有我用来调用你上面写的代码的输入按钮。 – 2010-07-09 14:58:31
那么,如果有Javascript与你想要展示的源代码混合在一起 - 或者,真的,*任何你想隐藏的东西 - 那么事情就会变得更加棘手。我会推荐我的答案,告诉你可以隐藏脚本元素。 (但是,我不得不想知道在HTML电子邮件模板的中间脚本块会做什么)。 – Pointy 2010-07-09 15:08:13
它不在它头脑中的HTML的中间,它保存了在CRM中工作的模板的重要CSS 。因此,为什么我需要删除它,谢谢你的帮助。 – 2010-07-12 09:18:08
我觉得这里最好的做法是不是真的使用JavaScript伎俩,但到HTML模板复制到一个可见部分和替换“<”与“& LT;”,“>”和“& GT; “ (根据需要转义其他位)。
我认为它会导致用户很难看到页面源代码,并且使用正则表达式来替代这些代码并不困难。
- 1. 需要javascript代码帮助
- 2. 检索页面源代码-javascript,cross-domain
- 3. 帮助纠正源代码,用模板
- 4. Windows 10 bootmgr帮助:查看源代码
- 5. C++源代码帮助,cout函数帮助
- 6. JavaScript帮助 - 带页面事件/变量
- 7. 帮助在html页面编码
- 8. 获取页面源代码
- 9. 需要帮助修改javascript代码段
- 10. 修复DRY代码帮助javascript?
- 11. 需要帮助查找javascript代码
- 12. 需要理解帮助JavaScript代码
- 13. 请帮助prependTo&替换JavaScript代码!
- 14. 帮助简单分页代码
- 15. Php帮助代码
- 16. drRacket代码帮助
- 17. OpenMP帮助代码
- 18. jQuery代码帮助
- 19. Visual Force页面帮助
- 20. android帮助活动页面
- 21. Web API帮助页面
- 22. 帮助使用此代码
- 23. 帮助重构PHP代码
- 24. 帮助我的C++代码
- 25. 帮助与ASP.net代码
- 26. 帮助理解Joomla!代码
- 27. 帮助一些UI代码
- 28. 帮助这个AS3代码
- 29. CCNx Java代码帮助(ProcessBuilder)
- 30. 简化Jquery代码帮助!
我无法解析这个问题。你需要包含“所有的HTML”在哪里?什么剧本“激发”什么?电子邮件与此有什么关系?问题标题与这个问题有什么关系?很混乱。 – Pointy 2010-07-09 14:18:39
好吧,经过您的编辑它是有道理的:-)谢谢! – Pointy 2010-07-09 14:29:02