如何在 <script> jquery html() 中转义标签。我使用内部HTML和外部HTML来解决此问题,但面临其中的问题



我想在加载页面时添加内容,并在保存到DB时删除内容。

我的回复有

加载:

我得到了回应,并试图将放入测试场

var element = document.createElement("pp");
var test = $j(element ).attr("id", "exam").addClass("exam");
        test.innerHTML = "test script <div>test</div><script src="test.js" src="text/javascript"></script>";

在访问测试[0]时。outerHTML我只是作为获得

<pp class="exam" id="exam"></pp>

但我期待的输出

<pp class="exam" id="exam">test script <div>test</div><script src="test.js" src="text/javascript"></script></pp>

让我知道这个出了什么问题

保存时:

我正在获取文本字段的内容

 $j("#textfield").html() which has <pp class="exam" id="exam">Test<script src="test.js" src="text/javascript"></script></pp>

现在我需要逃离

  <pp class="exam" id="exam"></pp> 

所以我用了

 $j("#textfield").html().html() which is stripping the <script> tag.

让我知道在这种情况下如何保留<script/>标签。

试试这个:

var stringOfHtml = // Your content HTML
$(stringOfHtml).find('script').remove();

如何使用JQuery删除所有";脚本";HTML字符串中的标记?

您可以对<script>标签进行编码:

$("<div/>").text(s).html();

并在使用前对其进行解码:

$('<div/>').html(text).text();

您可以尝试使用vanilla javascript:

var element = document.createElement("pp");
element.id = 'exam';
element.className = 'exam';
element.innerHTML = "test script <div>test</div><script src="test.js" src="text/javascript"></script>";
document.body.appendChild(element);
/* Check contents of <pp id='exam'>*/
var myEl = document.querySelector('#exam').outerHTML;
console.log(myEl);

console.log的输出将为:

<pp id="exam" class="exam">test script <div>test</div><script src="test.js"></script></pp>

希望能有所帮助!您可以在这里阅读innerHTML和outerHTML的工作原理:https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML

最新更新