gpt4 book ai didi

javascript - 使用 Javascript 嵌入包含 <script> 的 MvcHtmlString

转载 作者:行者123 更新时间:2023-11-30 18:17:00 24 4
gpt4 key购买 nike

下面嵌入一些方法Html来自string<div>使用 Javascript(使用一些 JQuery)可以工作:

var div = $('#someId');
var testHtml = '<script></script><div>dummy Content</div>';
div.html(testHtml);

Html 代码嵌入并显示在 div 中。如果我放一些alert('Test') -声明在<script>标签,警报就会出现。

同样有效的是:

<div id="someId">@MvcHtmlString.Create("<script></script><div>dummy Content</div>")</div>

但是我需要传递一个 MvcHtmlString到一个 javascript 函数,然后用 javascript 嵌入这个字符串。

如果字符串中没有 javascript 代码,则此方法有效:

var div = $('#someId');
var inputItem = '@MvcHtmlString.Create("<div>dummy Content</div>")';
div.html(inputItem);

但是如果字符串中有 javascript 内容,<script> -部分未嵌入且内容未正确显示。

所以这不能正常工作:

var div = $('#someId');
var inputItem = '@MvcHtmlString.Create("<script></script><div>dummy Content</div>")';
div.html(inputItem);

有人可以解释为什么这不起作用吗?有什么简单的技巧吗?

最佳答案

我不知道你在哪个浏览器中测试过(我在 IE8 和 Chrome22 中测试过)但是你的原始示例也不起作用:

var div = $('#someId');
var testHtml = '<script></script><div>dummy Content</div>';
div.html(testHtml);

检查这个 JSFiddle

因为你不能拥有"</script>"在 JS 字符串中,因为浏览器将其解释为结束 <script>标签。看到这个问题:Script tag in JavaScript string

所以解决方案对您来说是一样的,所以不要直接使用 </script>字符串内:

<script type="text/javascript">
var div = $('#someId');
var testHtml = '@MvcHtmlString.Create("<script>alert(\"test\");</sc' + 'ript><div>dummy Content</div>")';
div.html(testHtml);
</script>

您也可以在这个 JSFiddle 中检查它的实际操作.

关于javascript - 使用 Javascript 嵌入包含 &lt;script&gt; 的 MvcHtmlString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com