JavaScript(不要与Java混淆)是一种高级,动态,多范式,面向对象,基于原型的弱类型语言,用于客户端和服务器端脚本。它的主要用途是渲染和操作网页。使用此标记可以了解有关ECMAScript及其各种方言/实现的问题(不包括ActionScript和Google-Apps-Script)。
我有一个“N”个对象的数组,我需要做的是恢复或仅保留同一个数组或另一个数组中的那些对象,其中键 newField 的值与所有对象相同...
javascript中document.baseURI和document.URL有什么区别
我总是在开发者工具中看到两个实体(baseURI 和 URL)显示相同的 URL,大多数时候都显示在地址栏中。有人可以给我提供这些场景吗
我有一个javascript代码来制作滑块,并且在滑块内部,当用户选择产品的不同变体时,内容会发生变化,问题是当我尝试选择一个变体时,...
Angular:scrollIntoView 在 ngAfterViewInit 中没有 setTimeout 时无法处理路线更改
我有一个 Angular 组件,我想在路线更改时使用scrollIntoView。这是我的组件中的相关代码片段: @ViewChild('结构') 结构:ElementRef |不明确的;
JS:为书签脚本注入 BoundFunctionObject
假设我正在编写一个书签脚本来修改网页。大多数网站(使用 webpack 等)都遵循这样的结构: <question vote="1"> <div> </div> <p>假设我正在编写一个书签脚本来修改网页。大多数网站(使用 webpack 等)都遵循这样的结构:</p> <pre><code><html> <script type="text/javascript"> const buttonClicked = (() => { let internal_variable = 0; const _internal_buttonClicked = () => { internal_variable++; document.getElementById("myButton").innerText = `Clicked ${internal_variable} times!`; }; return _internal_buttonClicked.bind(this); })(); </script> <body> <button id="myButton" onclick="buttonClicked()">Clicked 0 times!</button> </body> </html> </code></pre> <p>我想访问 <pre><code>internal_variable</code></pre> 并将其设置为 -100。使用调试器,这很简单;我在<pre><code>_internal_buttonClicked()</code></pre>里面断点,然后直接改<pre><code>internal_variable</code></pre>。</p> <p>我怎样才能做到这一点而不</p> <ul> <li>(手动)使用调试器</li> <li>拥有页面源的所有权(例如,我可以在本地对其进行修改,但我不能只发送拉取请求以将挂钩添加到脚本中)</li> <li>使其成为对 DOM 的纯粹视觉更改?</li> </ul> <p>我知道简单的答案是“你不能,故意”,但我愿意接受任何迂回的解决方案,涉及浏览器扩展/特权执行的解决方案,特定于<pre><code>require</code></pre>的解决方案等</p> <p>相关:</p> <ul> <li><a href="https://stackoverflow.com/questions/42602954/how-to-get-parameters-that-have-been-bound-by-javascripts-bind-function">如何获取JavaScript的.bind()函数绑定的参数</a></li> <li><a href="https://stackoverflow.com/questions/11192875/is-it-possible-to-gain-access-to-the-closure-of-a-function">是否可以访问函数的闭包?</a>(此处的最佳解决方案取决于成为第一个加载的脚本,这对于小书签来说通常是不可行的?有没有办法使页面重新加载并注入将脚本放入刷新页面的顶部?)</li> </ul> </question> <answer tick="false" vote="0"> <p>无法为 <pre><code>internal_variable</code></pre> 分配新值,因为它不在您的代码范围内。您也不能将新函数分配给 <pre><code>buttonClicked</code></pre>,因为它是一个常量。</p> <p>但根据实际情况,你可以采取其他一些方法。以下是一些适用于您的示例案例的内容:</p> <h2>1.覆盖<pre><code>innerText</code></pre></h2> <p>让它更改按钮上显示的数字,方法是始终从即将显示的值中减去 100。</p> <p>你的代码会有这样的:</p> <pre><code> Object.defineProperty(document.getElementById("myButton"), "innerText", { set(text) { // Subtract 100 from the number in the text "Clicked <number> times!" text = text.replace(/(Clicked )(\d+)( times!)/, (_, a, b, c) => a + (b - 100) + c); // Call the prototype setter for innerText Object.getOwnPropertyDescriptor(HTMLElement.prototype, "innerText").set.call(this, text); } }); </code></pre> <p>扁平化为小书签:</p> <pre><code>javascript: {Object.defineProperty(document.getElementById("myButton"),"innerText",{set(text) {text=text.replace(/(Clicked )(\d+)( times!)/,(_,a,b,c)=>a+(b-100)+c);Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerText").set.call(this, text);}});} </code></pre> <h2>2.创建一个新函数<pre><code>buttonClicked2</code></pre></h2> <p>它应该有对计数器进行修改的代码。然后将每次调用 <pre><code>buttonClicked</code></pre> 更改为 <pre><code>buttenClicked2</code></pre>。这里我假设就像示例中一样,此类引用仅存在于按钮的 <pre><code>onclick</code></pre> 属性中。此调用的位置越多,您可能需要复制为新函数的函数就越多,还需要重新连接对 <em>that</em> 函数的引用,...等。但这里只有 <pre><code>onclick</code></pre> 属性受到影响:</p> <pre><code> var buttonClicked2 = (() => { let internal_variable = -100; // Our update const _internal_buttonClicked = () => { internal_variable++; document.getElementById("myButton").innerText = `Clicked ${internal_variable} times!`; }; return _internal_buttonClicked.bind(this); })(); // Redirect the click document.getElementById("myButton").setAttribute("onclick", "buttonClicked2()"); </code></pre> <p>扁平化为小书签:</p> <pre><code>javascript: {var buttonClicked2=(()=>{let internal_variable=-100;const _internal_buttonClicked=()=>{internal_variable++;document.getElementById("myButton").innerText=`Clicked ${internal_variable} times!`;};return _internal_buttonClicked.bind(this);})();document.getElementById("myButton").setAttribute("onclick", "buttonClicked2()");} </code></pre> <h2>3.创建一个页面填充 <pre><code><iframe></code></pre></h2> <p>在其中 <pre><code><iframe></code></pre> 放置当前的 HTML,但修改您想要的代码。因此,页面将重新加载,但经过您的修改并显示为 <pre><code><iframe></code></pre>。</p> <pre><code>if (window === top) { // Patch the HTML let html = document.documentElement.innerHTML .replace("internal_variable = 0;", "internal_variable = -100;"); let iframe = `<body style="margin:0"><iframe style="display:block;border:0;height:100%;width:100%"></iframe></body>`; // Replace the current document with just an <iframe> document.write(iframe); // Write the patched HTML to the frame document document.querySelector("iframe").srcdoc = html; } </code></pre> <p>扁平化为小书签:</p> <pre><code>javascript: if(window===top){let html = document.documentElement.innerHTML.replace("internal_variable = 0;", "internal_variable = -100;");let iframe = `<body style="margin:0"><iframe style="display:block;border:0;height:100%;width:100%"></iframe></body>`;document.write(iframe);document.querySelector("iframe").srcdoc=html;} </code></pre> <h2>限制</h2> <p>上述每种解决方案都有其局限性。其中之一是否适合现实生活中的情况将在很大程度上取决于页面的功能。</p> </answer> </body></html>
我想知道是否可以创建一个Excel文件并使用javascript从网页下载它? 目前,我成功创建了 .csv 并使用以下命令下载它...
所以我有来自应用程序的以下网址: 1.${端点}/list?currentPage=1&itemsPerPage=20&orderBy=name&orderType=1 2.${端点}/list?current=true¤tPage=1&itemsPerPage=20...
Plotly.js 允许您指定图形标题,但似乎没有选项可以指定将鼠标悬停在标题上时显示更长的描述。 因此,我向
我想打开与 Zebra 打印机的 TCP/IP 连接以发送 ZPL 命令进行打印。我可以使用 NodeJS 做到这一点,但不能使用 Web 套接字。 NodeJS var s = require('net').Socket(); s.connect(9100, '19...
如何使用自定义 HTML 和 JavaScript 将图像加载到 Gradio 的画布上?
我愿意通过自己创建html和js来在gradio中实现边界框编辑器(用户可以移动bbox,缩放和绘制新的bbox)。但我找不到将图像加载到
我正在尝试使用 Remix 的 useSubmit 挂钩提交表单。但我希望能够随表单提交数据一起传递任意数据。 我的表单元素具有一些已禁用的静态值/
Qualtrics:使用 javascript 实现骰子任务
我正在实施一项关于 Qualtrics 的调查,我正在尝试使用“简单的 javascript”来实现以下目标: ppl 单击几个骰子的图像 随机生成的数字出现在屏幕上...
我正在使用 select 2 jquery 插件创建多个多选下拉菜单,在某些情况下,页脚会在下拉菜单下多次附加。例如,如果您打开 drodpow...
在使用 z.discriminatedUnion 中的值之前,我需要将字符串格式的数字强制转换为 number。这可能吗?这是一个简化的代码片段: 从“zod”导入{z}; 常量
我无法让 mark.js 处理来自同一来源的 iframe 中的内容。 在创建新 Mark 实例时,存在 iframe 内容,但搜索功能不存在
使用 React 从不同端点异步获取 API 数据的最佳实践?
我正在为工作中的一个项目学习React,目前在掌握异步模型方面确实遇到了困难。 这是我正在开发的组件: 常量客户 = () => { 常量 [
Vue this.$emits 在函数调用过程中突然停止工作
我有这个函数,应该在向服务器发送请求之前和之后向父组件发出更新。 我正在使用 Vue 来运行前端。 这是我的功能...
目前,我正在为我的公司设计 IndexedDB 功能。我已经建立了一个扎实的课程,并且我所有的单元测试都有效。然而,当我尝试为客户打开一个新数据库时,统计数据...
我有一个用于制定员工计划的应用程序脚本,但目前它非常慢,因为它正在检查某人是否符合资格并且尚未计划以防止重复。 有人看到吗
我尝试使用 v-if 在页面上的不同容器中渲染 2 个按钮,具体取决于屏幕尺寸 有没有办法如何更改 @media 中项目的父项或如何在 v-if 条件中使用屏幕尺寸...