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

w9apscun  于 2022-11-22  发布在  jQuery
关注(0)|答案(3)|浏览(160)

这样 的 问题 之前 已经 回答 过 了 , 但 我 仍然 没有 得到 一 个 合适 的 解决 方案 。 我 的 方法 是 获取 ' 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>

格式
现在 在 文本 框 中 写 一些 东西 , 然后 按 " 获取 Html " 按钮 。 现在 检查 控制 台 。 将 有 html 源 代码 , 但 " 文本 框 " 值 将 不在 那里 。
我 知道 我们 可以 通过 .value 获得 输入 值 , 但 这 将 是 补丁 的 解决 方案 。 我 正在 寻找 一些 代码 , 我们 可以 通过 它 获得 完整 的 源 代码 的 身体 标记 , 包括 动态 创建/修改 元素 的 值 和 属性 。

a2mppw5e

a2mppw5e1#

我 完全 同意@nnnnnn 对 这个 问题 的 评论 ...
我 不会 试图 通过 保存 HTML 来 保存 应用 程序 状态 , 我 会 考虑 将 应用 程序 状态 保存 在 一 个 JS 对象 中 , 然后 保存 该 对象 的 序列 化 版本 ( JSON ) , 然后 根据 需要 从 状态 对象 中 的 值 重新 创建 HTML 来 恢复 状态 。

    • 但是 * * , 你 可以 做 以下 事情 来 达到 你 想要 的 - - 这 可能 是 我 最近 见过 的 最 不 靠谱 的 事情 了 ... ... ( 不 推荐 ) ... ...

第 一 个
jquery html() does not return changed values 的 最 大 值

hgb9j2n6

hgb9j2n62#

经过 一番 努力 , 我 终于 做到 了 ... ... 我 用 的 是 domJSON

var elem =  document.getElementsByTagName('body')[0];

var o = domJSON.toJSON(elem);

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

中 的 每 一 个

sauutmhj

sauutmhj3#

这不是一个开发者,而是一个管理员的方式...:)只需在Chrome中打开您的页面,打开开发工具,然后单击元素选项卡上的指针按钮。Chrome将向您显示静态HTML源代码...:)

相关问题