Javascript 如何使HTML文本成为DOM对象

Javascript 如何使HTML文本成为DOM对象,javascript,angularjs,dom,Javascript,Angularjs,Dom,我有一个应用程序,其中页面生成器创建一个保存在数据库中的起始页。保存的信息只是DOM对象的outerHTML。要创建edit函数,我需要一个反向函数,该函数用HTML信息重新创建DOM对象。不幸的是,将解密的信息分配给outerHTML部分不会产生任何结果,因为DOM对象中的更改会被忽略 我的问题:如何使用保存的outerHTML信息重新创建DOM对象?如果这是不可能的,那么做这样一件事的正确方式是什么 编辑 谢谢你的回复!下面是一些代码片段,它们显示了我在做什么。prototype Main小

我有一个应用程序,其中页面生成器创建一个保存在数据库中的起始页。保存的信息只是DOM对象的
outerHTML
。要创建edit函数,我需要一个反向函数,该函数用HTML信息重新创建DOM对象。不幸的是,将解密的信息分配给
outerHTML
部分不会产生任何结果,因为DOM对象中的更改会被忽略

我的问题:如何使用保存的outerHTML信息重新创建DOM对象?如果这是不可能的,那么做这样一件事的正确方式是什么

编辑 谢谢你的回复!下面是一些代码片段,它们显示了我在做什么。prototype Main小部件正在从HTML页面获取信息&希望分配信息。使用的函数是另一个称为小部件的对象(原型)的一部分


您可以使用
DOMParser()
创建
#文档
,或者使用
元素从字符串创建
#文档片段

const parser = new DOMParser();
const doc = parser.parseFromString(/* outerHTML */, "text/html");

可以使用
domaparser()
创建
;文档
,或
元素从字符串创建
;文档片段

const parser = new DOMParser();
const doc = parser.parseFromString(/* outerHTML */, "text/html");

您可以将字符串添加到页面中的隐藏Div中,然后使用javascript从该Div中获取所需的元素。如以下代码所示:

var str ='abc 123<div id="test">coursesweb.net</div><span class="cls">some text</span>';
document.querySelector('body').insertAdjacentHTML('beforeend', '<div style="display:none;">'+str+'</div>');
var ob_test = document.getElementById('test');
alert(ob_test.innerHTML);
var str='abc 123coursesweb.netsome text';
document.querySelector('body').insertAdjacentHTML('beforeed',''+str+'';
var ob_test=document.getElementById('test');
警报(ob_test.innerHTML);

您可以将字符串添加到页面中的隐藏Div中,然后使用javascript从该Div中获取所需的元素。如以下代码所示:

var str ='abc 123<div id="test">coursesweb.net</div><span class="cls">some text</span>';
document.querySelector('body').insertAdjacentHTML('beforeend', '<div style="display:none;">'+str+'</div>');
var ob_test = document.getElementById('test');
alert(ob_test.innerHTML);
var str='abc 123coursesweb.netsome text';
document.querySelector('body').insertAdjacentHTML('beforeed',''+str+'';
var ob_test=document.getElementById('test');
警报(ob_test.innerHTML);

解决方案应该是这样的,您可以得到一个包含内容的HTML字符串。然后使用
$sce.trustAsHtml()并分配给一个范围变量,该变量将确保HTML是安全的,然后您可以使用下面的HTML,该HTML具有指令
ng bind HTML
,以将HTML字符串呈现为实际的HTML

下面是一个相同的工作示例

var-app=angular.module(“angularApp”,[]);
app.controller(“appController”,函数($scope,$sce){
$scope.content=“此文本支持html,意味着您可以在此处使用各种html。”;
$scope.output=$sce.trustAsHtml($scope.content);
});

用angularJS呈现HTML

解决方案应该是这样的,您可以得到一个包含内容的HTML字符串。然后使用
$sce.trustAsHtml()并分配给一个范围变量,该变量将确保HTML是安全的,然后您可以使用下面的HTML,该HTML具有指令
ng bind HTML
,以将HTML字符串呈现为实际的HTML

下面是一个相同的工作示例

var-app=angular.module(“angularApp”,[]);
app.controller(“appController”,函数($scope,$sce){
$scope.content=“此文本支持html,意味着您可以在此处使用各种html。”;
$scope.output=$sce.trustAsHtml($scope.content);
});

用angularJS呈现HTML

谢谢您的回复!我有一个所谓的
sg section
对象,它是由页面生成器创建的,保存在数据库中。是否可以使用隐藏元素的技巧将现有空对象更改为数据库中的空对象?请尝试以下操作:
document.querySelector(“#sg-section_id”).outerHTML='html string'。或者,如果sg section是JS中的一个对象:
sg-section.outerHTML='html string'谢谢你的回答!我想是保存一个完整的
sg部分
还是只保存更改的内容更好&可以使用后者,这样我就只保存JavaScript对象了。谢谢你的回复!我有一个所谓的
sg section
对象,它是由页面生成器创建的,保存在数据库中。是否可以使用隐藏元素的技巧更改数据库中现有的空对象?请尝试以下操作:
document.querySelector('\sg-section\u id').outerHTML='html string'。或者,如果sg section是JS中的一个对象:
sg-section.outerHTML='html string'谢谢你的回答!我想是保存一个完整的
sg部分
还是只保存更改的内容更好&可以使用后者,这样我就只保存JavaScript对象了。谢谢!我将尝试是否可以使用此选项将DOM中的空
sg部分
对象替换为保存的
sg部分
outerHTML
信息。谢谢!我将尝试是否可以使用它将DOM中的空
sg section
对象替换为保存的
sg section
outerHTML
信息。