通过文档对象模型,将此标记用于有关其他语言与XML / HTML交互的问题。不要将其用作HTML,JavaScript或SAX的简写 - 使用其他标记来表示语言和标记。
有什么方法可以在将元素附加到 DOM 之前获取其高度吗?我知道 clientHeight 不能像我尝试的那样工作,它总是返回 0。是否有其他方法可以返回
我正在尝试从 Visma Inschool 获取我的学校时间表。由于它在学校本地托管,我有权这样做。 我正在尝试制作一个信息屏幕,但当它出现时我完全迷失了......
为什么 DOMDocument::saveHTML() 的行为在将 UTF-8 编码为样式和脚本元素中的实体时有所不同?
给定一个使用包含表情符号字符的样式表构建的 DOMDocument,在将 DOM 序列化回 HTML 时,我发现了一些奇怪的行为。 $html = <<< HTML 考虑到使用包含表情符号字符的样式表构建的 DOMDocument,我在将 DOM 序列化回 HTML 时发现了一些奇怪的行为。 $html = <<< HTML <!DOCTYPE html> <html> <head> <meta charset=utf-8> <style>span::before{ content: \"⚡️\"; }</style> </head> <body> <span></span> </body> </html> HTML; $dom = new DOMDocument(); $dom->loadHTML($html); echo $dom->saveHTML($dom->documentElement); echo $dom->saveHTML(); $dom->saveHTML($dom->documentElement)的结果是(根据需要): <html><head><meta charset="utf-8"> <style>span::before{ content: "⚡️"; }</style> </head><body><span></span></body></html> 但是 $dom->saveHTML() 返回(错误地): <html><head><meta charset="utf-8"> <style>span::before{ content: "⚡️"; }</style> </head><body><span></span></body></html> 请注意表情符号“⚡️”如何编码为样式表内的 HTML 实体 ⚡️。它被视为文字字符串,因为应使用 CSS 转义 \26A1。 我尝试设置$dom->substituteEntities = false但没有任何效果。 相同的 HTML 实体转换也发生在 <script> 元素内部,这会在浏览器中导致类似的问题。 通过在线 PHP shell 进行测试:https://3v4l.org/jMfDd 您应该在 DOMDocument 上加载带有表情符号的 HTML 之前转换编码: $dom->loadHTML(mb_convert_encoding($htmlCode, 'HTML-ENTITIES', 'UTF-8')); 编辑:正如帖子所有者提到的,mb_convert_enconding 在未来的 PHP 版本中已被弃用(目前在 8.2.5 上进行了测试并且工作正常)。对于更高版本的 PHP,请查看 https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated#html
选择器“a:not(:has(a))”适用于 Chrome,但不适用于 Firefox [重复]
以下代码适用于 Chrome 和 Edge,但不适用于 Firefox: document.querySelectorAll('a:not(:has(a))') 在 Firefox 上,它会抛出 未捕获的 DOMException: Document.querySelectorAll: 'a:not(:has(a)...
抱歉,如果这个问题看起来很菜鸟或没有意义,我对 JS 很陌生。 我有一个如下所示的网页 - 椅子 抱歉,如果这个问题看起来很菜鸟或没有意义,我对 JS 很陌生。 我有一个如下所示的网页 - <td class="main" data="chair">Chair</td> <td class="main" data="table">Table</td> <td class="main" data="desk">Desk</td> 我知道如何通过 ID 或类名选择文档,但在这里你可以看到类名对于所有文档都是相同的,我如何选择表的值? 我尝试过使用 document.querySelectorAll 并在其上实现了 foreach 但失败了。 你能让我知道如何做到吗? 使用属性选择器: https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors console.log(document.querySelector('[data=chair]').textContent); <table> <tr> <td class="main" data="chair">Chair</td> <td class="main" data="table">Table</td> <td class="main" data="desk">Desk</td> </tr> </table> 你能试试这个代码吗? function exampleTable() { var getTables = document.querySelectorAll(".main"); getTables.forEach((cell) => { var content = cell.textContent; var dataAttribute = cell.getAttribute('data'); console.log(content); console.log(dataAttribute); });}
组合 box-shadow 和 border-radius 时出现 CSS 故障
我尝试使用 CSS 和 HTML 创建一个切换按钮,问题是当我在 Chrome、Firefox 和 Safari 上组合 box-shadow 和 border-radius 属性时,边缘出现故障。 例子 ...
如何在 HTML 视频元素的客户端坐标和图片坐标之间进行转换?
假设我有一个视频元素,我想在其中处理鼠标事件: const v = document.querySelector('video'); v.onclick = (ev) => { ev.preventDefault(); console.info(`x=${event.offse...
我想动态地将javascript添加到现有的脚本元素中,例如: var se = document.createElement('script'); se.setAttribute('类型', '文本/javascript'); se.innerHTML = '警报(1)';
需要在GTM中捕获DOM变量,但ID是动态的并且根据用户而变化
需要在表单字段中返回电话号码作为GTM中的变量,但id是动态的并且不会被推送到数据层。想要提取下面所需的值。 需要在表单字段中返回电话号码作为 GTM 中的变量,但 id 是动态的并且不会被推送到数据层。想要提取下面所需的值。 <input name="phone" type="tel" id="id-lpvcy9p3" class="my-input" required="" value="1111111111" data-gtm-form-interact-field-id="0"> 尝试在 DOM Id 字段中对 id 进行正则表达式(不确定正则表达式是否有效),但不断获取空值 我同意@CBroe 的观点,使用类似 name 的方法是比 ID 更可靠的方法。考虑到这个名称对于您所定位的领域来说是唯一的(有时不是)。 您可以使用 JavaScript 变量(例如 document.getElementsByName('phone'))来提取该字段的内容。
访问 nextSibling 的属性时,类型“ChildNode”上不存在属性“xxx”
游乐场演示 代码: document.querySelectorAll('a').forEach(item => { console.log(item.nextSibling?.tagName); }) /* 1 文本节点 2 游乐场演示 代码: document.querySelectorAll('a').forEach(item => { console.log(item.nextSibling?.tagName); }) /* <span>1</span> text node <span>2</span> <script> document.querySelector('span').nextSibling; // #text document.querySelector('span').nextSibling.nextSibling; // <span>2<span> </script> */ 我在这里没有使用nextElementSibling,因为我也想迭代文本节点 您的问题下的评论正确地指出,ChildNode可以是HTML元素之外的其他内容,因此这就是为什么像tagName这样的属性默认情况下不起作用。 评论建议转换为 HTMLElement,但最好使用 instanceof: document.querySelectorAll('a').forEach(item => { if (item.nextSibling instanceof HTMLElement) { console.log(item.nextSibling?.tagName); } }) 这是类型安全的,如果您愿意,它可以让您使用文本节点。 这是另一种方法,尽管我认为它不太干净: document.querySelectorAll('a').forEach(item => { const nextSibling = item.nextSibling; if (nextSibling && "tagName" in nextSibling) { console.log(nextSibling.tagName); } }) 如果你想过滤掉除元素之外的所有内容,你可以使用类型保护: function isHTMLElement(node: Node): node is HTMLElement { return node instanceof HTMLElement; } Array.from(document.querySelectorAll('a')).filter(isHTMLElement).forEach(item => console.log(item.tagName))
我正在使用 Mozilla Firefox,我正在尝试找出一种使用 JavaScript 和 DOM 访问同一窗口中其他选项卡内容的方法(如果存在的话,我愿意接受其他技术)。 例如,我...
Google 应用程序脚本将 Google 文档中标题 4 的硬包装转换为软包装
我正在处理一份谷歌文档,其中一个标题分布在由 Enter 分隔的多行中( ),我想将其转换为软回车(Shift + Enter),我可以手动完成,但它非常乏味...
我正在尝试使用多个前端应用程序来优化网站。我想动态下载(解析)应用程序并为我们系统的关键应用程序设置顺序。 我在想...
我设置了 2 个点击监听器,这些句柄显示模式并删除注释。这些侦听器使用事件委托并在父容器上设置。当用户输入...
我正在尝试制作一个机器人/机器人在一个专用网站上执行预定义的操作,我将从 Chrome 中提供的控制台运行该网站(也许稍后将其转换为扩展程序)。 我正在尝试更改值...
我有一个反应代码。它从 django API 获取图像数据并将其显示在屏幕上。图像数据采用 Base64 格式。 从“react”导入 React, { useState }; 从 &q 导入 axios...
我需要这样做,以便如果用户单击它一次(例如设置值 1),他就无法再次单击,直到将值设置为 0 $50
如何通过在 Javascript 中按下键盘按钮来实现鼠标单击事件
如何通过使用 vanilla javascript 按键盘上的按钮来触发网页上某个元素上的 mouseclick 事件?
项目:互动世界地图 使用SVG地图文件获取国家名称 使用国家/地区名称进行 API 调用 使用 API 中的信息通过 API 中的信息更新文本框。 我正在关注一个gu...
我正在尝试将两个 XML 文件打包到一个 zip 文件中: XML 是使用 org.w3c.dom.* 生成的,我试图将它们直接转换为 ZipOutputStream。单个文件示例: 尝试(最终