问题标签 [innerhtml]

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 投票
5 回答
12580 浏览

javascript - 访问内容

#xA;

This javascript snippet just returns an empty string. Is there a way of getting the contents of a noscript node?

p.s. I'm using prototype on this particular project.

0 投票
3 回答
1328 浏览

javascript - 在 IE 7 中丢失 div 内容中的换行符

我正在尝试在源中的换行符上拆分 div 的 innerText 。这适用于:

但这在 IE 7 中失败了,因为换行符显然被删除了。jQuery 1.3.2 似乎没有错,因为我也尝试了这两种方法:

如果我将 div 更改为 pre,则上述任何工作都不会。

看来换行符是一旦源被解析到 DOM 中。:( 是这样吗?有没有办法用javascript来解决它们?

0 投票
13 回答
88936 浏览

javascript - innerHTML 的替代品?

编辑:哇。这个问题现在已经 12 岁了。

正如有人所说,自 2016 年以来可以使用单线完成:https ://stackoverflow.com/a/69322509/80907


原本的:

我想知道是否有一种方法可以在不使用 innerHTML 的情况下更改 HTML 中任何内容的文本。

我问的原因是因为它有点被 W3C 反对。我知道这是吹毛求疵,但我只想知道,有没有办法?

编辑:人们似乎误解了我在这里问的内容:我想找到一种方法来有效地更改正在显示的文本。

如果我有:

innerHTML 允许我这样做:

我屏幕上的文字也会改变。
我不希望追加更多文本,我希望更改已经存在的文本。

0 投票
2 回答
1188 浏览

javascript - 您可以使用 jQuery 的 $.load() 函数将表单插入页面吗?

我有一个页面,其中有一个拖放表,其中行的顺序决定了小计的值。然而,它比简单的加法更复杂,我宁愿不复制 JavaScript 中的逻辑来更新值。

一个简单的解决方案是使用 Ajax 重新加载整个页面,然后从通过 Ajax 获取的页面中替换表。也许这不是最优雅的解决方案,但我认为这是完成工作的一种快速方法,目前可以接受。

你可以像这样使用 jQuery 来做到这一点:

但是,我的“简单”解决方案结果并不是那么简单,因为该表还包含一个<form>未在 Firefox 中显示的标签(Safari 有效)。

当我使用 Firebug 检查页面时,我看到了表单,但它和它的元素是灰色的。

在网上搜索,我发现一个人说 FF3 和 IE从通话中去除标签的帖子相当混乱。<form>innerHTML

我可能会继续以其他方式执行此操作,但为了我将来的参考,我想知道:是这样吗?

0 投票
4 回答
5257 浏览

javascript - 如何在 Firefox 中的纯 txt 文件上使用 innerHTML?

如果您在浏览器中打开一个文本文件(.txt、.js、.css、...),它将被包裹在一个漂亮的 DOM 树中。

例如,打开这个 .txt 文件并输入

进入您的地址栏。不错...每个主流浏览器都支持对这个包装的文本文件进行 DOM 操作,这对于编写强大的小书签或用户脚本来说是一件好事。

但是,Firefox 无法分配任何元素的 innerHTML。例如,

将适用于除 Firefox 之外的所有浏览器。

有解决此问题的技巧吗?

(不,我不想手动解析 innerHTML 字符串,不,它也不适用于 jQuery。)

0 投票
3 回答
8650 浏览

javascript - JavaScript 文本节点更新

如果我有一个

是否可以简单地更新内容t

我想在parent不使用removeChild,createTextNode和的情况下更改里面的文本appendChild。为什么我需要这个而不是仅仅使用innerHTML?因为我不想用 HTML 代码更新元素的内容,并且text可能包含特殊字符,例如应该由TextNodeDOM 方法解析的 < 或 &。

谢谢,
汤姆

0 投票
2 回答
30127 浏览

javascript - 使用 innerHTML.replace 替换文本以创建链接

我正在使用 Sharepoint (WSS 3.0),不幸的是,它在格式化调查问题的能力方面非常有限(即,它会删除您输入的任何 HTML)。我在其他地方看到了一个解决方案,建议我们在母版页文件中添加一些 JS 以允许换行。这很好用,但我想看看我们是否也可以允许链接。

在我们的 WSS 调查中,我现在可以在任何需要换行符的地方使用 {{br}}(这很有效)。我尝试扩展代码以允许使用链接标签(例如,{{link1}}url{{link2}}URL Title{{link3}};但是,这不起作用,大概是因为更新不是作为一个整体发生,然后浏览器尝试逐个渲染它,使其混淆。(FF和IE显示不同的结果,但都失败了。如果我混淆了下面JS的顺序 - 即,做link3, 2然后 1 - 输出也发生变化,但仍然失败。)有没有更好的方法来做到这一点?


0 投票
2 回答
1656 浏览

ajax - 通过 AJAX/innerHTML 显示部分 Unicode 编码的数据

我试图通过 AJAX 调用从服务器获取一些数据,然后使用 responseDiv.innerHTML 显示结果。来自服务器的数据部分使用 Unicode 元素编码,例如:za\u010Dat test。通过设置响应 div 的 innerHTML,这将按原样显示。也就是说,Unicode 不会转换为浏览器中的实际表示。

包含页面的字符集设置为 UTF-8。我已经尝试了大多数其他的东西,比如将 unicode 表示转换为 HTML 实体,但这似乎也不起作用。

我还应该提到,来自服务器的文本也混合了 HTML 标记。HTML 标记应得到尊重。例如,如果来自服务器的文本为<b>Bold this!</b>,则文本为粗体。

任何帮助表示赞赏。

维克拉姆

0 投票
5 回答
13659 浏览

javascript - 为什么我不能在 IE 中将包含脚本标签的字符串添加到 innerHTML

我正在尝试执行以下操作(我正在使用原型库):

在 IE 中,在我在第二行设置属性后,div.innerHTML 属性始终等于 ""。

该片段位于外部供应商脚本中覆盖 document.write() 的函数内部,这就是为什么我这样做而不是创建脚本元素并将其直接附加到 div 元素的原因。

任何帮助将不胜感激,这让我白发苍苍!

0 投票
2 回答
13621 浏览

jquery - MSIE:jQuery 的 append()/html() 不起作用,求助于 getElementById().innerHTML

这是一篇长文,

前提

被要求帮助客户修复他们当前项目的一些错误。需要修复的是工作列表页面。您有一个作业列表,单击其中一个,如果激活了 JavaScript,则会进行 AJAX 调用以将作业的详细信息动态加载到现有元素 (DIV#emploi_details) 中。如果 JS 未激活,它只会重新加载包含作业详细信息的页面(不太重要)。

我跳上他们的实验室服务器在开发网站上工作。

问题

基本上,IE7(起初)没有显示通过 $().load() 加载的内容。IE6 与innerHTML 一起工作顺利。请求已发送,我每次都会收到回复。我收到数据,我可以 alert() 它并查看它,但内容的实际转储不起作用。Safari,火狐,没问题。我正在向其中加载信息的 DIV#emploi_details 元素有一个 CSS display:none; 在其样式表中,并在加载内容后显示(其他不那么重要的细节)。

解决方案

起初我的印象可能是 $().load() 只是在起作用,所以我将其更改为 $.get() 以更好地控制加载内容的操作。

这行得通。在包括 IE6 和 IE7 在内的所有浏览器中。没问题。很奇怪,但你知道它是否有效且完全证明,不要问问题。

情节转折

现在这就是狗屎变得奇怪的地方。我认为该错误已修复并将解决方案应用于实时网站,但......它不起作用。IE只是不喜欢它。在尝试了 $.ajax 和所有其他类型的东西之后,我感到困惑,我最终将它用于实时网站:

它适用于所有浏览器,因为没有什么能像准系统 JS 那样完成工作。必要时,此修复程序也适用于开发网站。

'待续'

嵌入内容的功能中有些东西不是所有浏览器(显然是服务器)都没有点击。

总而言之,我的问题是 WTF 问题。我不明白为什么一个在一侧有效,而在另一侧无效,甚至为什么它一开始就不能正常工作($().load())。这显然不是不同的 jQuery 版本(1.2.6),因为这是我验证框架版本的第一直觉。

无论如何,有趣的神秘海事组织。

希望斯塔克兰的某个人有上帝赐予的答案。

谢谢