马黑黑 发表于 2026-7-18 20:04

演示:在二楼获取一楼的HTML代码

<style>
    .tMid { text-align: center; }
</style>

<div id="pa">
    <p class="tMid">
      <img src="https://638183.freep.cn/638183/Pic/38/3-8.jpg" />
    </p>
</div>

<script>
    var img = document.querySelector('#pa img');
    if (img) img.setAttribute('title', 'JS添加的图片提示');
</script>

马黑黑 发表于 2026-7-18 20:05

<style>
    @import 'https://638183.freep.cn/638183/web/css/hl.css';
    .hlCode { white-space: pre-wrap; }
</style>

<p>一楼完整代码(动态获取):</p>
<pre class="hlCode"></pre>

<script>
    var cBox = document.querySelector('pre.hlCode');
    var tBox = document.getElementById('pa');
   
    document.addEventListener('DOMContentLoaded', () => getHtml(pa, cBox));

    function getHtml(elm, codebox) {
      var paElm = elm.parentElement;
      var html = paElm.innerHTML.trim();
      codebox.textContent = html;
    }
</script>

马黑黑 发表于 2026-7-18 20:06

二楼核心代码(JS函数):

<pre class="hlCode">function getHtml(elm, codebox) {
    var paElm = elm.parentElement;
    var html = paElm.innerHTML;
    codebox.textContent = html;
}</pre>

马黑黑 发表于 2026-7-18 20:16

失败!

动态获取的 HTML 代码,img 标签中不应包含title="JS添加的图片提示" 属性设置。

【注】在非 Discuz! 环境下测试是成功的。看样子,Discuz! 干扰了 DOMContentLoaded 事件,导致拿到的代码是页面完全加载后JS生成的代码。

红影 发表于 2026-7-18 21:09

黑黑是在做试验么?
好像以前加图片都没JS 什么事,只是在html里加的啊{:4_173:}

马黑黑 发表于 2026-7-18 22:31

红影 发表于 2026-7-18 21:09
黑黑是在做试验么?
好像以前加图片都没JS 什么事,只是在html里加的啊
这是做测试。

音画帖发完,二楼发代码。我的设想是二楼可不可以不再发一次代码、直接读取一楼的源码。对于不改变DOM内容而言,这是可行的,但,音画帖总会追加内容到DOM中,拿到的代码是追加后的HTML代码,不等于源码。

普通环境下,监听 DOMContentLoaded 拿到的是源码而非JS改变后的代码,但在 Discuz! 这招行不通。DS 给的建议是预先在一楼“埋雷”即先获取原始代码,然后再在二楼展示。“埋雷”方法虽可行,但帖子代码不干净,污染了。

红影 发表于 2026-7-22 20:05

马黑黑 发表于 2026-7-18 22:31
这是做测试。

音画帖发完,二楼发代码。我的设想是二楼可不可以不再发一次代码、直接读取一楼的源码。 ...

黑黑辛苦了,把论坛的设置研究得那么通透{:4_187:}

马黑黑 发表于 2026-7-22 22:27

红影 发表于 2026-7-22 20:05
黑黑辛苦了,把论坛的设置研究得那么通透

我曾经在本地机器部署过 Discuz! ,也在局域网维护过 Discuz!,不过它太复杂,经常弄坏。

红影 发表于 2026-7-23 22:58

马黑黑 发表于 2026-7-22 22:27
我曾经在本地机器部署过 Discuz! ,也在局域网维护过 Discuz!,不过它太复杂,经常弄坏。

黑黑什么都尝试过,厉害的{:4_187:}

马黑黑 发表于 2026-7-24 18:30

红影 发表于 2026-7-23 22:58
黑黑什么都尝试过,厉害的

有时间的时候弄弄,就是不够专业

红影 发表于 2026-7-24 23:21

马黑黑 发表于 2026-7-24 18:30
有时间的时候弄弄,就是不够专业

黑黑谦虚了,你是我们这里代码最好的了{:4_187:}

马黑黑 发表于 2026-7-25 21:08

红影 发表于 2026-7-24 23:21
黑黑谦虚了,你是我们这里代码最好的了

那不见得,俺就是喜欢显摆而已

红影 发表于 2026-7-25 23:10

马黑黑 发表于 2026-7-25 21:08
那不见得,俺就是喜欢显摆而已

这个也谦虚啊,根本没必要啊{:4_173:}

马黑黑 发表于 2026-7-25 23:54

红影 发表于 2026-7-25 23:10
这个也谦虚啊,根本没必要啊

必要还是有的

红影 发表于 2026-7-26 21:41

马黑黑 发表于 2026-7-25 23:54
必要还是有的

在大家心里你就是大神级别的存在{:4_187:}

马黑黑 发表于 2026-7-26 23:55

红影 发表于 2026-7-26 21:41
在大家心里你就是大神级别的存在

错觉

红影 发表于 2026-7-27 21:25

马黑黑 发表于 2026-7-26 23:55
错觉

很一致的感觉,不是错觉呢{:4_187:}

马黑黑 发表于 2026-7-27 21:53

红影 发表于 2026-7-27 21:25
很一致的感觉,不是错觉呢

错觉都是一致的

红影 发表于 2026-7-29 21:52

马黑黑 发表于 2026-7-27 21:53
错觉都是一致的

你一直在否认,就是不想承认呗,没事,我们大家认可了就好{:4_173:}

马黑黑 发表于 2026-7-30 21:34

红影 发表于 2026-7-29 21:52
你一直在否认,就是不想承认呗,没事,我们大家认可了就好

这个勉强不来
页: [1] 2
查看完整版本: 演示:在二楼获取一楼的HTML代码