dom 相关问题

通过文档对象模型,将此标记用于有关其他语言与XML / HTML交互的问题。不要将其用作HTML,JavaScript或SAX的简写 - 使用其他标记来表示语言和标记。

需要在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'))来提取该字段的内容。

回答 1 投票 0

访问 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))

回答 1 投票 0

访问浏览器中其他选项卡的内容

我正在使用 Mozilla Firefox,我正在尝试找出一种使用 JavaScript 和 DOM 访问同一窗口中其他选项卡内容的方法(如果存在的话,我愿意接受其他技术)。 例如,我...

回答 5 投票 0

Google 应用程序脚本将 Google 文档中标题 4 的硬包装转换为软包装

我正在处理一份谷歌文档,其中一个标题分布在由 Enter 分隔的多行中( ),我想将其转换为软回车(Shift + Enter),我可以手动完成,但它非常乏味...

回答 1 投票 0

创建动态获取和解析脚本的顺序

我正在尝试使用多个前端应用程序来优化网站。我想动态下载(解析)应用程序并为我们系统的关键应用程序设置顺序。 我在想...

回答 1 投票 0

处理一种类型的事件时停止触发下一个事件侦听器

我设置了 2 个点击监听器,这些句柄显示模式并删除注释。这些侦听器使用事件委托并在父容器上设置。当用户输入...

回答 1 投票 0

如何使用js通过控制台更改输入字段的值?

我正在尝试制作一个机器人/机器人在一个专用网站上执行预定义的操作,我将从 Chrome 中提供的控制台运行该网站(也许稍后将其转换为扩展程序)。 我正在尝试更改值...

回答 1 投票 0

类型错误:无法设置 null 的属性(设置“src”)

我有一个反应代码。它从 django API 获取图像数据并将其显示在屏幕上。图像数据采用 Base64 格式。 从“react”导入 React, { useState }; 从 &q 导入 axios...

回答 1 投票 0

我需要防止用户单击<input type range>

我需要这样做,以便如果用户单击它一次(例如设置值 1),他就无法再次单击,直到将值设置为 0 $50

回答 0 投票 0

如何通过在 Javascript 中按下键盘按钮来实现鼠标单击事件

如何通过使用 vanilla javascript 按键盘上的按钮来触发网页上某个元素上的 mouseclick 事件?

回答 3 投票 0

D280 最终版,尝试从 API 订阅数据(角度)

项目:互动世界地图 使用SVG地图文件获取国家名称 使用国家/地区名称进行 API 调用 使用 API 中的信息通过 API 中的信息更新文本框。 我正在关注一个gu...

回答 1 投票 0

将 XML 写入 ZIP

我正在尝试将两个 XML 文件打包到一个 zip 文件中: XML 是使用 org.w3c.dom.* 生成的,我试图将它们直接转换为 ZipOutputStream。单个文件示例: 尝试(最终

回答 1 投票 0

有没有办法重新初始化 jQuery?

问题 JQuery 在导入时初始化。如果 window 和 window.document 存在(而模块不存在),JQuery 会保存引用并随后使用它们。 有没有办法“重新初始化”...

回答 2 投票 0

如何检查line-clamp是否启用?

我在跨度中有一个动态文本。我想使用线夹:2。 在这种情况下,最多有。 2 行文本,其余部分被……截断。 适用于: 显示:-webkit-box; -webkit-line-c...

回答 4 投票 0

如何检测页面何时已使用 PDFJS 渲染?

一旦 PDF.JS 完成渲染每个页面,我想对该页面的内容进行查找/替换。 我通过将以下内容放入 iFrame 的文档中来调用 PDF.JS: 菲...</desc> <question vote="3"> <p>一旦 PDF.JS <strong>完成渲染</strong>每个页面,我想<strong>然后</strong>对该页面的内容进行查找/替换。</p> <p>我通过将以下内容放入 iFrame 的文档中来调用 PDF.JS:</p> <pre><code>&lt;script&gt; fileId=0; function getURLParameter(name) { return decodeURIComponent((new RegExp(&#39;[?|&amp;]&#39; + name + &#39;=&#39; + &#39;([^&amp;;]+?)(&amp;|#|;|$)&#39;).exec(location.search)||[,&#34;&#34;])[1].replace(/\+/g, &#39;%20&#39;))||null } var fileId = getURLParameter(&#34;fileId&#34;); var DEFAULT_URL = &#39;/viewer/fetchpdf.php?fileId=&#39;+fileId; &lt;/script&gt; </code></pre> <p>然后从父框架设置 URL:</p> <pre><code>url = &#39;/_third_party/pdfjs/web/viewer.html?fileId=&#39;+$(this).attr(&#39;href&#39;); $(&#34;#iframeViewPdf&#34;).attr(&#39;src&#39;, url); </code></pre> <p>我注意到,当使用 PDF.JS 渲染 PDF 时,它会使用加载占位符初始化每个页面:</p> <pre><code>&lt;div id=&#34;pageContainer3&#34; class=&#34;page&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;div class=&#34;loadingIcon&#34;&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id=&#34;pageContainer4... </code></pre> <p>然后将 PDF 呈现为 html,例如</p> <pre><code>&lt;div id=&#34;pageContainer3&#34; class=&#34;page&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;div class=&#34;canvasWrapper&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;canvas id=&#34;page46&#34; width=&#34;991&#34; height=&#34;1319&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;/canvas&gt; &lt;/div&gt; &lt;div class=&#34;textLayer&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; ... &lt;/div&gt; &lt;/div&gt; &lt;div id=&#34;pageContainer4... </code></pre> </question> <answer tick="false" vote="1"> <p>随着澄清,这是一个非常不同的故事。您没有直接使用 PDF.JS,而是使用它们的 Web 包装器。我认为你可以使用的一件事(我从来没有这样做过,现在只是阅读代码)是他们在 <pre><code>pageRendered</code></pre> 上发出 <pre><code>document</code></pre> 事件,所以如果你可以向它添加一个监听器,你应该没问题:</p> <pre><code>var frameDoc = document.getElementById(&#39;iframeViewPdf&#39;).contentWindow.document; frameDoc.addEventListener(&#39;pagerendered&#39;, function (evt) { console.log(evt); // see what goodies hide here! like page number etc } </code></pre> <p>(未测试,可能需要调整。)</p> </answer> <answer tick="false" vote="1"> <p>这就是我们检测页面渲染的方式。在设置监听器之前等待 iframe 内容加载很重要。</p> <pre><code>$( &#34;#iframeViewPdf&#34; ).load(function() { // wait for iframe to load var frameDoc = $(&#34;#iframeViewPdf&#34;).contents()[0]; frameDoc.addEventListener(&#34;pagerendered&#34;, function (evt) { console.log(evt.detail); }); }); </code></pre> </answer> <answer tick="false" vote="0"> <pre><code>//Step 1: store a refer to the renderer var pageRendering = page.render(renderContext); //Step : hook into the pdf render complete event var completeCallback = pageRendering.internalRenderTask.callback; pageRendering.internalRenderTask.callback = function (error) { //Step 2: what you want to do before calling the complete method completeCallback.call(this, error); //Step 3: do some more stuff }; </code></pre> </answer> </body></html>

回答 0 投票 0

PDF.JS - 检测页面何时呈现

一旦 PDF.JS 完成渲染每个页面,我想对该页面的内容进行查找/替换。 我通过将以下内容放入 iFrame 的文档中来调用 PDF.JS: 菲...</desc> <question vote="3"> <p>一旦 PDF.JS <strong>完成渲染</strong>每个页面,我想<strong>然后</strong>对该页面的内容进行查找/替换。</p> <p>我通过将以下内容放入 iFrame 的文档中来调用 PDF.JS:</p> <pre><code>&lt;script&gt; fileId=0; function getURLParameter(name) { return decodeURIComponent((new RegExp(&#39;[?|&amp;]&#39; + name + &#39;=&#39; + &#39;([^&amp;;]+?)(&amp;|#|;|$)&#39;).exec(location.search)||[,&#34;&#34;])[1].replace(/\+/g, &#39;%20&#39;))||null } var fileId = getURLParameter(&#34;fileId&#34;); var DEFAULT_URL = &#39;/viewer/fetchpdf.php?fileId=&#39;+fileId; &lt;/script&gt; </code></pre> <p>然后从父框架设置 URL:</p> <pre><code>url = &#39;/_third_party/pdfjs/web/viewer.html?fileId=&#39;+$(this).attr(&#39;href&#39;); $(&#34;#iframeViewPdf&#34;).attr(&#39;src&#39;, url); </code></pre> <p>我注意到,当使用 PDF.JS 渲染 PDF 时,它会使用加载占位符初始化每个页面:</p> <pre><code>&lt;div id=&#34;pageContainer3&#34; class=&#34;page&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;div class=&#34;loadingIcon&#34;&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id=&#34;pageContainer4... </code></pre> <p>然后将 PDF 呈现为 html,例如</p> <pre><code>&lt;div id=&#34;pageContainer3&#34; class=&#34;page&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;div class=&#34;canvasWrapper&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;canvas id=&#34;page46&#34; width=&#34;991&#34; height=&#34;1319&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; &lt;/canvas&gt; &lt;/div&gt; &lt;div class=&#34;textLayer&#34; style=&#34;width: 991px; height: 1319px;&#34;&gt; ... &lt;/div&gt; &lt;/div&gt; &lt;div id=&#34;pageContainer4... </code></pre> </question> <answer tick="false" vote="1"> <p>随着澄清,这是一个非常不同的故事。您没有直接使用 PDF.JS,而是使用它们的 Web 包装器。我认为你可以使用的一件事(我从来没有这样做过,现在只是阅读代码)是他们在 <pre><code>pageRendered</code></pre> 上发出 <pre><code>document</code></pre> 事件,所以如果你可以向它添加一个监听器,你应该没问题:</p> <pre><code>var frameDoc = document.getElementById(&#39;iframeViewPdf&#39;).contentWindow.document; frameDoc.addEventListener(&#39;pagerendered&#39;, function (evt) { console.log(evt); // see what goodies hide here! like page number etc } </code></pre> <p>(未测试,可能需要调整。)</p> </answer> <answer tick="false" vote="1"> <p>这就是我们检测页面渲染的方式。在设置监听器之前等待 iframe 内容加载很重要。</p> <pre><code>$( &#34;#iframeViewPdf&#34; ).load(function() { // wait for iframe to load var frameDoc = $(&#34;#iframeViewPdf&#34;).contents()[0]; frameDoc.addEventListener(&#34;pagerendered&#34;, function (evt) { console.log(evt.detail); }); }); </code></pre> </answer> <answer tick="false" vote="0"> <pre><code>//Step 1: store a refer to the renderer var pageRendering = page.render(renderContext); //Step : hook into the pdf render complete event var completeCallback = pageRendering.internalRenderTask.callback; pageRendering.internalRenderTask.callback = function (error) { //Step 2: what you want to do before calling the complete method completeCallback.call(this, error); //Step 3: do some more stuff }; </code></pre> </answer> </body></html>

回答 0 投票 0

React 无法使用 e.target.getAttribute() 方法获取自定义属性

我正在尝试在我的changeHandler 中处理自定义属性。不幸的是,React 无法识别自定义的“data-index”属性。 所有其他标准属性(例如名称、标签...

回答 2 投票 0

为什么 `mouseup` PreventDefault 对所选文本的影响不同?

调用 mouseupEvent.preventDefault() 通常不会阻止创建新的选择,除非您尝试在当前选择中创建选择。 Array.from(document.querySelectorA...

回答 1 投票 0

如何修改粘贴的文本?

是否可以拦截和修改粘贴到文本区域的文本? 如果无法拦截,粘贴后可以修改吗? (无需修改

回答 4 投票 0

DOM 更改后无法通过 JavaScript 访问样式

当我的页面从包含数据的文件加载时,我会立即动态地将电影图像添加到我的 DOM 中, 但是现在当我尝试访问它们的样式或更改它时,我会返回未定义的状态。 我的容器...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.