我想将一大段HTML代码(可能是2-3段html格式的代码)作为参数传递给来自HTML的Javascript函数调用。问题是,格式化的HTML一直出现在页面本身中,这不应该是这样的!我假设单引号/双引号有一些问题!
而且,我正在Facebook的标签页上工作。
有谁能帮帮我吗?
谢谢。
发布于 2011-03-13 05:51:33
一种方法是有一个隐藏的div ( display:none),然后用2-3段html格式的代码填充它。然后,您可以只将div的innerHTML传递到您的函数中。引号(任何类型)在这个方法中都不会造成问题。
发布于 2011-03-13 09:20:31
像icanhaz.js这样的一些库也做这样的事情:
<script type="text/html" id="someHTMLTemplate">
   <div>You can put whatever html you want here</div>
   <p>And the browser just ignores it</p>
</script>我对mustache.js使用了相同的技术,然后在通过dom id获取模板之后,从脚本标记的innerHTML中获取模板。这样做的好处是,当你需要在页面上的另一个节点显示它时,浏览器不必解析你额外的html,而加载它只需解析即可。
发布于 2011-03-13 09:41:24
另一种方法是编码HTML,然后在JS中对其进行解码。下面是一个使用JS转义信息的示例:
console.log(escape("<hello></hello>"));           // %3Chello%3E%3C/hello%3E
console.log(unescape("%3Chello%3E%3C/hello%3E")); // <hello></hello>请注意,如果您的字符串引号一开始就有问题,那么编码仍然会有问题。
https://stackoverflow.com/questions/5285714
复制相似问题