如何从HTML大块的HTML代码中将参数传递给JS函数?

时间:2011-03-12 21:46:13

标签: javascript html facebook fbjs

我希望将HTML代码的一大块(可能是2-3段html格式代码)大量传递给来自HTML的Javascript函数调用。问题是,格式化的HTML一直出现在页面本身,不一定是这样!我假设单/双引号存在问题!

而且,我正在Facebook标签页上工作。

有人可以帮助我吗?

感谢。

- 阿赫桑

3 个答案:

答案 0 :(得分:1)

一种方法是使用隐藏的div(显示为:none),并使用2-3段html格式的代码填充它。然后,您可以将div的innerHTML传递给您的函数。引号(任何类型)都不会导致此方法出现问题。

答案 1 :(得分:0)

像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。

答案 2 :(得分:0)

另一种方法是对HTML进行编码,然后在JS中对其进行解码。以下是使用JS转义信息的示例:

console.log(escape("<hello></hello>"));           // %3Chello%3E%3C/hello%3E
console.log(unescape("%3Chello%3E%3C/hello%3E")); // <hello></hello>

请注意,如果您的字符串引号存在问题,那么编码仍然存在问题。