下面嵌入一些方法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 嵌入包含 <script> 的 MvcHtmlString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015930/