bookmarklet是使用“javascript:”协议的URL的浏览器书签。 “javascript:”前缀后跟一段JavaScript代码。调用时,脚本不是导航到新页面,而是在当前页面的上下文中执行。
css将在手写笔扩展名或JS中设置用于移动YouTube聊天消息TextInput
在YouTube上,在交互式流中变得更容易聊天(我正在观看而不是流式传输。
我需要在适当的位置添加 window.location.href 。 使用案例: 通过主动更新用户的地址栏来加快单网页任务的速度。 用户体验: 地址栏显示位置。 用户单击书签...
有一个烦人的网站,它会阻止使用 而不是 来“在新选项卡中打开”的尝试。我使用 jQuery 编写了一个书签,... 有一个烦人的网站,它通过使用 <div onclick=> 而不是 <a href=> 来阻止“在新选项卡中打开”的尝试。我使用 jQuery 编写了一个书签,它创建了一个包装器 <a> 标签,并将其插入到其内容周围的 <div> 中。 如何删除原来的 onclick 处理程序? 尚未提及: $('#myId')[0].onclick = null; // remove the inline onclick() event 未经测试,但是... $("selector").removeAttr("onclick"); 我想你已经尝试过了 $("selector").unbind("click"); 在某些情况下,将 onclick 设置为 null 不起作用,但这应该始终有效: document.getElementById("myId").setAttribute("onclick", ""); element.removeAttribute('onclick'); 就是这样。 实际上删除了监听器。 其他方法则不然——它仍然有效。 请参阅开发工具。截图如下。 留下失效的监听器通常没什么大不了的,但如果你有很多这样的监听器,它们会浪费CPU,并且你的页面或应用程序的性能会下降。 而且,它仍然像某种孤儿太监一样在你的代码中活着,这有点丑陋。 有点惊讶这个问题已经存在了近 15 年了,但从来没有一个正确的答案......尽管最后一个有正确的想法,除了“未经测试”的答案哈哈。 把这个扔在那里,因为我确信有人遇到过这个问题,试图真正回答这个问题,正确地,如果没有真正正确地回答,可能会导致问题。 消除影响并不等同于消除原因。 有时还不够。 使用这个: 不是这些:
我想要对网页进行全屏截图。我希望它只包含相关信息。我设置缩放级别并将相关部分滚动到视图中。从现在开始,我想躲起来……
工作中有一个网站,我想通过单击或导航后立即填写我的姓名、电子邮件和电话号码。* 该网站最基本的形式是这样的: 工作中有一个网站,我想通过单击或导航到该网站来填写我的姓名、电子邮件和电话号码。* 该网站最基本的形式是这样的: <html> <body> <table> <TR> <TD width="71"><BR><BR>Text1: </TD><TD colspan="5" width="608 <BR>** Text2<BR> <input name="Comment" size="100" maxlength="200" value="na"> </TD> </TR> <TR> </table> </body> </html> 我已经尝试过基于此网站上这两个问题的方法: 如何使用javascript填写表单字段并提交? 使用 Javascript 打开新页面并在那里填充表单值 但我就是无法让任何事情发挥作用。这是我创建的书签: javascript (function()%7Bdocument.getElementById("Comment").value%3D"Test111"%7D)() 但这会给出类型为“Uncaught TypeError: Cannot Set Property 'Value' of null”的错误 我还创建了这个书签: javascript:(function()%7Bdocument.getElementByTagName("Comment")[0].value%3D"moo"%7D)() 这给了我一个“未捕获的类型错误:未定义不是函数”类型的错误 我在树林里迷路了;我有编码经验,但主要是使用 python 或 FORTRAN (eep) 进行数据解析和分析。 HTML 和各种相关的脚本语言对我来说真的很有趣,但我只是不太了解它们来解决这个问题。 *如果有一种方法可以让我在不实际导航到该网站的情况下提交这种类型的表单,那就太好了。 使用 getElementsByTagName 的工作方式如下: javascript:(function(){document.getElementsByName('Comment')[0].value='Moo';})(); 本质上我有 3 种不同的方式来调用元素,以及一堆为这三种方式构建语法的方式。这些可能性中只有一种组合真正有效,我在这里找到了一些关于它们的信息: Mozilla getElementsByName 文档 感谢CBroe为我指明了正确的方向。
有一个网站,有一个特定的按钮,其href每周都会变化。我需要一个书签,将我重定向到此 href 中的 URL。 我尝试使用书签,但看不到...
用于从 html 每月日历时间表中提取小书签数据的 JavaScript
我有一个小书签和 JavaScript,我可以用它从网站的 html 表中提取数据。 在大多数情况下,该脚本工作正常,但它解析日期错误。 HTML 中的日期
我无法从新选项卡或空白页显示提示。有办法做到这一点吗? 小书签: javascript: (功能() { var val=prompt("请输入电话号码",""); 如果...
以下书签应该从 Chrome 中打开的网页中删除特定元素(我计划仅在单个网页上使用它,因此不需要更通用的解决方案;另外,我
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>
简单的 javascript bookmarkerlet 不起作用,客户端验证脚本导致错误,我该如何绕过
非常感谢您的帮助。 我有一个巨大的数据电子表格,需要手动加载到网络表单 https://www.elogbook.org/ 中。 这将非常乏味,我看了几个选项并决定...
在小书签中,如何防止发生 Shift-右键单击时出现上下文菜单?
我希望当用户按住 Shift 键并右键单击图像时,书签能够识别图像源,但我在使用明显的事件侦听器时遇到了麻烦。 我没有成功...
Bookmarklet 正在用新样式定义中的文本替换整个正文
所以我正在尝试制作几个快速书签来帮助我使用 Jira: 删除侧边栏 放大文本编辑器区域 以下代码在开发控制台中运行良好: 文件。
我刚刚写了我的第一个书签。它是简单的 js 代码,它获取当前页面的 URL 并执行 POST 请求以将其提交到另一个页面。 问题是我需要在博客上分享这个
我有这个 并想通过简单地单击一个书签来将 maxlength 值更改为 2000,但我对 JS 的工作原理一无所知,因此我们将不胜感激。 提前致谢! 我已经...
我正在尝试创建一个简单的书签,它可以在任何 URL 末尾添加一个短参数 我使用 ?clearcache 清空内部缓存,因此为了不每次都键入它,我正在寻找一个简单的
我需要找到一张票在每个团队域中花费的总时间。 对于一个团队来说,时间是从票证到达到票证离开其域给另一组为止。 如果票回来了...
简单 JavaScript 书签无法在 EDGE 兼容模式 ie11 上运行
我正在尝试运行以下 JavaScript 作为网站/webapp* 上的测试。 javascript: {window.alert("Hello World")} *此网站/网络应用程序强制 EDGE 浏览器在 IE11 上运行