如何将 HTML 大块 HTML 代码作为参数传递给 JS 函数?

发布于 2024-10-21 08:04:16 字数 198 浏览 2 评论 0原文

我想将一大段 HTML 代码(可能是 2-3 段 html 格式的代码)作为参数传递给 HTML 的 Javascript 函数调用。问题是,格式化的 HTML 不断出现在页面本身中,但事实不应该如此!我假设单/双引号存在一些问题!

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

有人可以帮我吗?

谢谢。

- 阿山

I want to pass as argument a large (maybe 2-3 paragraphs of html formatted code) chunk of HTML code to a Javascript function call from HTML. The problem is, the formatted HTML keeps appearing in the page itself, which shouldnt be the case ! I am assuming theres some problem with single/double quotes !

And, I am working on Facebook tab page.

Can anyone please help me ?

Thanks.

-
ahsan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦幻的味道 2024-10-28 08:04:16

一种方法是有一个隐藏的 div(带有 display:none 的东西),并用 2-3 段 html 格式的代码填充它。然后,您可以将 div 的 innerHTML 传递到您的函数中。在此方法中,引号(任何类型)不会导致问题。

One way is to have a hidden div (something with display:none), and populate that with your 2-3 paragraphs of html formatted code. Then, you can just pass the innerHTML of the div into your function. Quotes (of any kind) won't cause a problem in this method.

夜吻♂芭芘 2024-10-28 08:04:16

像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,只需在需要在页面上的另一个节点中显示它时解析它。

Some libraries like icanhaz.js also do something like this:

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

I use the same technique with mustache.js and then grab the template from the innerHTML of the script tag after grabbing it by the dom id. This has the advantage that the browser doesn't have to parse your extra html while loading it is just parsed when you need to display it in another node on the page.

一梦等七年七年为一梦 2024-10-28 08:04:16

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

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

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

Another way is to encode the HTML and then decode it in the JS. Here's an example using the JS escape info:

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

Mind you, if you have an issue with your string quotations to begin with, then there will still be a problem encoding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文