Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取包含Jquery或Javascript动态创建的元素的页面的html源代码_Javascript_Jquery_Html_Css - Fatal编程技术网

获取包含Jquery或Javascript动态创建的元素的页面的html源代码

获取包含Jquery或Javascript动态创建的元素的页面的html源代码,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这样的问题以前已经得到了回答,但我仍然没有得到一个合适的解决方案。 我的方法是获取“body”标记及其所有子项(动态创建)的html源代码,然后将它们保存在会话存储中。这样页面就可以在这个缓存的帮助下重新加载数据 我几乎做了所有的事情,只是勉强得到了html源代码 我可以通过以下方式获取html代码: console.log($('body').html()); console.log(document.body.innerHTML); 其中body标记类似于: <body>

这样的问题以前已经得到了回答,但我仍然没有得到一个合适的解决方案。 我的方法是获取“body”标记及其所有子项(动态创建)的html源代码,然后将它们保存在会话存储中。这样页面就可以在这个缓存的帮助下重新加载数据

我几乎做了所有的事情,只是勉强得到了html源代码

我可以通过以下方式获取html代码:

console.log($('body').html());
console.log(document.body.innerHTML);
其中body标记类似于:

    <body>
    <input type="button" id="btnconsole" value="Get Html">
    <div id="divcontainer" style="background-color:blue; height:100%; width:100%;">
        <input type="text" id="textbox">
    </div>
</body>

但是我没有得到输入标记的“value”字符串。为了更好地理解:请执行以下代码:

<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $("#btnconsole").on('click',function(){
                    console.log($('body').html());
                    //console.log(document.body.innerHTML);
                });
            });
        </script>
    </head>
    <body>
        <input type="button" id="btnconsole" value="Get Html">
        <div id="divcontainer" style="background-color:blue; height:100%; width:100%;">
            <input type="text" id="textbox">
        </div>
    </body>
</html>

$(文档).ready(函数(){
$(“#btnconsole”)。在('click',function()上{
log($('body').html());
//log(document.body.innerHTML);
});
});
现在在文本框中写些东西,然后按“获取Html”按钮。现在检查控制台。将有html源代码,但“textbox”值将不存在


我知道我们可以通过
.value
获得输入值,但这将是一个不完整的解决方案。我正在寻找一些代码,通过这些代码我们可以获得body标签的完整源代码,包括动态创建/修改元素的值和属性。

我完全同意@nnnnnn对这个问题的评论


我不会试图通过保存HTML来保存应用程序状态,我会将应用程序状态保存在JS对象中,然后保存该对象的序列化版本(JSON)。然后根据需要从state对象中的值重新创建HTML来恢复状态



然而,,你可以做以下事情来实现你想要的——这可能是我最近看到的最不可靠的事情了。。。(不推荐)

$(文档).ready(函数(){
$(“#btnconsole”)。在('click',function()上{
$(“输入”)。每个(函数(){
$(this.attr(“value”,$(this.val());
});
log($('body').html());
});
});

经过一些努力,我终于成功了。。。 我用的是


我不会试图通过保存HTML来保存应用程序状态,我会将应用程序状态保存在JS对象中,然后保存该对象的序列化版本(JSON)。然后根据需要从状态对象中的值重新创建HTML来恢复状态。@nnnnnn,你很好地理解了我,实际上我的下一个方法与你说的相同。我使用“domJSON.min.js”获取html代码,以进一步将它们转换为JSON。请你通过一个例子解释一下你在说什么好吗?谢谢@Zze,但正如我所说的,我知道我们可以通过.value获得输入值,但这将是一个不完整的解决方案。我的目标是在卸载页面之前保存页面缓存,然后在返回同一页面时重新加载缓存。
var elem =  document.getElementsByTagName('body')[0];

var o = domJSON.toJSON(elem);

console.log(JSON.stringify(o));