问题标签 [robohelp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
38 浏览

javascript - 如何覆盖元素文本的一部分而不影响元素的其余部分和任何事件侦听器

我的这段代码由 Adob​​oe 的 RoboHelp 2017 自动创建到我的 HTML5 生成的帮助文件中:

我正在尝试使用 javascript 来动态修改In this Topic 具有本地化字符串的文本实例,而不影响锚标记中的显示/隐藏链接。

这是我目前的尝试:

这确实改变了文本,但我遇到的问题是,这也会破坏 RoboHelp 创建的事件侦听器。例如,在我上面的代码之前,原始的 Firefox Inspector 是这样的。

注意有这个事件监听器: 在此处输入图像描述

这是我上面的代码之后的样子。

现在没有事件监听器: 在此处输入图像描述

我今天做了一些研究,我从这个链接中了解到使用 .innerHTML “删除内部数据,如事件侦听器”: Element innerHTML getting rid of event listeners

但我似乎无法想出一种不同的方法来覆盖锚标记之前的文本,而让显示/隐藏链接和事件侦听器毫发无损。

我尝试过的其他事情:

(链接页面中的示例显示了如何通过附加到现有元素来执行此操作,但我需要覆盖指向锚标记的文本,而不是附加到元素。)

  • 我尝试使用 .setAttribute 重新创建 onclick 事件: minitoc.setAttribute('onClick()',TextPopup('MTHotSpot46267'));

  • 我试图重新创建事件侦听器,但这也不起作用: minitoc.addEventListener('click', TextPopup('MTHotSpot46267'));

所有在线示例似乎都处理附加或前置,而不是覆盖文本。

如何在In this Topic 不影响显示/隐藏链接和这些链接上的事件侦听器的情况下使用本地化字符串动态覆盖文本?