我想在加载页面时添加内容,并在保存到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