为什么这个延迟的 WHILE 循环会导致大量内存泄漏?
我从此站点上的其他地方撕下了一个不错的技巧,使您可以延迟循环的周期.我将其修改为一些用于自己使用的JavaScript bot,该javaScript bot在tampermonkey上运行,在Chrome版本34.0.1847.131m. 中 无论出于何种原因,一旦称为循环,就开始发生大量内存泄漏(约为每秒40,000k -80,000k),并且根本不会循环.我的计算机已经崩溃了两次,因为我既不准备也没有期望. 功能 //Tests if Bot is still connected var connected = true; function testConnection() { // create a loop function setTimeout(function () { // call a 3s setTimeout when the loop is called //
16 2024-04-22
编程技术问答社区
如何让Greasemonkey点击一个延迟后才出现的按钮?
我已经看过很多类似的问题,并且我已经尝试了我能想到的一切来使我自己工作. 首先是相关的代码(从目标页面上?): document.getElementById('btn_submit').innerHTML = ' '; 基本上,页面上有一个计时器,"立即单击我!"按钮在3秒后出现,这是我要单击的部分. 这是我的代码.它不起作用: // ==UserScript== // @name abc // @namespace something // @description abc Scripty // @include * // @version 1 // ==/
20 2024-04-05
编程技术问答社区
使用Greasemonkey或Tampermonkey添加一个JavaScript按钮?
我是Greasemonkey世界的新手,我想知道如何在JavaScript中制作按钮. 说我想在YouTube或Google上放一个按钮?我将如何打电话或做它? 我很困惑,无法在上面找到任何东西.除非有某种与这些站点的HTML进行交互并将其添加到GreaseMonKey脚本的地方? 解决方案 好吧,这是一个完整的脚本,在SO PAGES上添加了一个Live按钮 1 : // ==UserScript== // @name _Adding a live button // @description Adds live example button, with styling. // @match *://stackoverflow.com/questions/* // @match *://YOUR_SERVER.COM/YOUR_PATH/* // @grant GM_addStyle // ==/UserScr
8 2024-04-05
编程技术问答社区
在加载一个特定的网站时自动运行JavaScript代码
我已经编写了脚本来滤除作者编程论坛中的线程和帖子. ,但是您需要将代码分别发布到Web控制台中. 我想知道是否可能是可能的,如果这样(使用Firefox或Chrome)如何设置浏览器以在加载特定站点时运行特定的脚本?是否可以作为扩展名或插件? 解决方案 You can use Tampermonkey for Google Chrome Tampermonkey是Google Chrome最受欢迎的用户参考经理. GreaseMonKey Firefox: 允许您使用JavaScript的小位来自定义网页显示或行为的方式. 其他解决方案 您可以使用 dotjs是一个Google Chrome扩展程序,根据其文件名在~/.js中执行JavaScript文件. 如果导航到http://www.google.com/,dotjs将执行~/.js/google.com.js. 这使得使用JavaScript缩小您喜欢的页面非常容易.
10 2024-04-03
编程技术问答社区
TamperMonkey可以创建一个书签吗?
Q:是否可以在该脚本中编写一个命令,该命令自动将原始地址作为书签保存在该文件夹中,然后在重定向我之前?我找不到这样的命令. 背景: 编程的新鲜事物.我是一个骨折的学生.当我遇到付费墙后面的一篇有趣的文章时,我只是使用大学的代理重新加载页面.一只手臂折断,我必须用另一只手做一切.因此,我在Tampermonkey(类似于GreaseMonKey)中写了一个JavaScript,该Javascript重写URL并加载该页面. 要跟踪我阅读的文章,我将地址添加到我的书签中,并在一个名为"已经阅读"的文件夹中. 到目前为止的代码: (还没有书签命令.) // ==UserScript== // @name Cat. // @include https://www.sciencedirect.com/science/article/* // @grant GM_setClipboard // @grant GM_s
20 2024-04-01
编程技术问答社区
在网页输入框中自动填充一个数值的脚本
我的工作是为患者订购诊断测试,我需要为每个诊断测试编写6-7个字符的价值.我有24个不同的值,我需要填充数千次.我正在考虑使用TampermonKey创建24种不同的脚本,以通过单击脚本框来加快我的工作. 所以我需要填写这个 box .这是 console 中的输入ID和该框的所有内容.然后,我手动键入值,每次输入一个字符时(与Google或YouTube搜索框相同的原理)会更新弹出列表,这是弹出列表 键入一个值后,如果我想要该诊断测试,我需要从弹出列表中单击它,我不能只是单击Enter.因此,这是我必须通过一个值填充框的代码: document.body.appendChild(element) element.addEventListener('click', function(){ document.querySelector("input#generic_test_order_search.ui-autocomplete-input").value = '15002 ' }
0 2024-04-01
编程技术问答社区
如何将书签程序转换为Greasemonkey用户脚本?
是否有一种简单的方法可以做到这一点.由于其运行方式的差异,是否需要更改任何东西? 解决方案 最简单的方法: 通过javascript:alert ('Hi Boss!'); 剥离前导javascript:关闭.结果:alert ('Hi Boss!'); 将此代码添加到GreaseMonKey文件的末尾.例如,创建一个名为 的文件 Hello world.user.js ,使用此代码: // ==UserScript== // @name Hello World! // @description My first GM script from a bookmarklet // @include https://stackoverflow.com/questions/* // @grant none // ==/UserScript== alert ('Hi Boss!'); 打开 H
10 2024-04-01
编程技术问答社区
为什么我的Greasemonkey脚本没有更新?
我有一个用于Firefox的GreaseMonKey脚本.该脚本包括此元块和一些代码行. 我想在服务器上更新我的脚本,然后自动更新浏览器的脚本. requireSecureUpdates选项已关闭. 我在做什么错? 我的1.meta.js // ==UserScript== // @name Ibood autosubmit // @include https://*.ibood.com/* // @include http://*.ibood.com/* // @include * // @version 1.1 // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @grant GM_addStyle // @downloadURL http://www.tipsvoorbesparen.nl/1.user.js // @
32 2024-03-21
编程技术问答社区
音频文件未在Tampermoney中使用Userscript播放
我试图通过TampermonKey使用用户脚本播放音频文件,但是由于某种原因,当我尝试运行代码并且音频文件未播放时,我会在控制台中遇到此错误: 未被发现(在承诺中)domexception:play()失败,因为用户没有先与文档进行交互. . 这是什么意思,我该如何修复? // ==UserScript== // @name play audio // @namespace John Galt // @description Basic Google Hello // @match *^https://www.google.com/$* // @version 1 // @grant GM_xmlhttpRequest // @run-at document-end // ==/UserScript== // alert("hello"); const newAudio = new Audio("someaudi
10 2024-03-19
编程技术问答社区
如何用用户脚本覆盖警报功能?
在网站上有这样的代码(其网站上的网站) alert("ble"); 我尝试使用GM禁用该警报.我试图这样做 unsafeWindow.alert=function() {}; ,但我看到了警报并获得此错误 Error: uncaught exception: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: file:///C:/Documents%20and%20Settings/arokitnicki/Dane%20aplikacji/Mozilla/Firefox/Profiles/sm4bsods.default/exten
16 2024-01-22
编程技术问答社区
Greasemonkey的AJAX请求没有发送数据?
我正在用greasemonkey的GM_xmlhttpRequest()发射GET: $(".getReview").click(function(){ var videoId = $(this).parents("li").find("a").attr("href"); alert(videoId); GM_xmlhttpRequest({ method: "GET", url: "http://www.amitpatil.me/demos/ytube.php", data: "username=johndoe&password=xyz123", headers: { "User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used. "Accept": "text/xml
48 2024-01-21
编程技术问答社区
强制Tampermonkey晚点运行/执行脚本
在Ajax加载的每个文档后,我如何强制tampermonkey运行/执行脚本? 我希望在脚本中访问这些元素并更改它们.但是,即使我在设置页面中将@run-at设置为document-end,它仍会执行,而文档未充分加载. 而且,它发生在这个特定网站上! 我尝试了这些方式,但没有成功: onload事件. 我尝试了while语句检查是否加载了所有文档,然后继续执行我的脚本,但它崩溃并掉入了无限的环路. 我尝试执行一个函数(但无法通过控制台访问). 那我该怎么办? 解决方案 您想要的内容是由Ajax加载的,因此您需要使用 ajax-compensation技术您的脚本. 最简单的方法是使用 waitforkeyelements().类似: // ==UserScript== // @name _YOUR_SCRIPT_NAME // @include http://YOUR_SERVER.COM/YOUR_PATH/* // @req
30 2024-01-21
编程技术问答社区
如何使用Tampermonkey脚本替换AJAX驱动的页面文本和选择属性中的大量文字?
我正在使用树沃克在HTML文档中翻译文本/单词/术语,以仅影响文本节点: var replaceArry = [ [/View your user account/gi, 'Tu cuenta'], // etc. ]; var numTerms = replaceArry.length; var txtWalker = document.createTreeWalker ( document.body, NodeFilter.SHOW_TEXT, { acceptNode: function (node) { //-- Skip whitespace-only nodes if (node.nodeValue.trim() ) return NodeFilter.FILTER_ACCEPT; return NodeF
12 2024-01-20
编程技术问答社区
如何在AJAX驱动的页面中改变<input>的名称字段?
对于此目标页面(对不起,但因此不允许超链接到62.0.54.118): http://62.0.54.118/search?&q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0 ,我想用Userscript更改的名称字段. 输入是: 我想将其更改为: 也就是说,我想将q>在输入的name字段中更改为name默认情况下. 我尝试编写一个脚本(不起作用): // ==UserScript== // @name Normal Google Input // @include http://62.0
10 2024-01-20
编程技术问答社区
Greasemonkey的AJAX请求来自不同的域?
我正在尝试获取JavaScript(使用GreaseMonKey)从我自己的网站中提取数据以自定义另一个站点.我使用的代码如下: function getURL(url, func) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onload = function (e) { if (xhr.readyState == 4) { if (xhr.status == 200) { func(xhr.responseText, url); } else { alert(xhr.statusText, 0); } } }; xhr.onerror = function (e) { alert("getURL Error: "+ xhr
8 2024-01-20
编程技术问答社区
如何让AJAX的get-request等待页面渲染后再返回响应?
我正在撰写当一个人访问site1上的报价时,脚本查询 site2 在site2上列出.如果是这样,请在site2上显示site2的搜索结果. 问题是Site2显示一个进度栏("加载结果"),然后显示结果.因此,我的ajax请求总是返回空的结果,看起来像这样(请参阅红色框的部分): 但是,它实际上应该具有Site2的搜索结果的完整内容,例如: 我尝试了同步的ajax请求以及GM_xmlhttpRequest无济于事. 这是网站2的问题进度栏: 在返回对site1的响应之前,我如何获得AJAX请求,以等待Site2上的搜索完全渲染? 供参考,我的完整工作脚本代码位于pastebin.com . 这是相关片段: $(document).ready(function(){ var rewardsSiteResults = $(' ').attr('id', "r
12 2024-01-20
编程技术问答社区
在同一个页面上多次运行Greasemonkey脚本?
我是Greasemonkey,JavaScript的新手,实际上是所有UI的东西. 需求:用户标题在页面加载后由GS运行一次.但是,我需要相同的脚本来多次运行,而无需刷新 用例:对于Ex,Amazon.com搜索使用Ajax进行.我需要在搜索结果中嵌入一个自定义元素. 我需要将我的内容注入搜索 - 搜索范围内,以及每次在同一页面中搜索发生搜索时(没有页面刷新) 我当前的脚本仅在页面刷新下运行. 我希望上面的解释清楚.请帮助. 解决方案 最简单,最健壮的方法是使用 waitforkeyelements() P> 这是 完整的脚本 使用jQuery和waitForKeyElements更改亚马逊搜索结果: // ==UserScript== // @name _Amazon Search, alter results // @include http://www.amazon.com/s/* // @require http://aj
8 2024-01-20
编程技术问答社区
jQuery在控制台工作,但在.js文件中不工作
$('ul#test a').click(function(){ $('this').closest('parent').find('textarea').val(this.getAttribute('href')); }); 在Google Chrome摘要中工作,但不加载Tampermonkey. 我认为它甚至在找到目标 之前都试图设定一个值 (编辑) 整个脚本: // ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match www.reddit.com/r/some-subreddit // @grant none //
16 2024-01-18
编程技术问答社区
按钮点击在Greasemonkey/Tampermonkey脚本中不起作用。已经用waitForKeyElements()尝试了标准鼠标事件。
我正在尝试单击URL上的" mehr laden"按钮.sparhandy.de/handy-kaufen/带有tampermonkey.该按钮位于智能手机图片下方.这是我到目前为止写的脚本: // ==UserScript== // @name SparhandyScript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author Nigel // @match http://www.sparhandy.de/handy-kaufen/ // @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js // @require https://gist.github.com
16 2024-01-16
编程技术问答社区
根据值和父方ID选择复选框
我正在使用TampermonKey检查复选框.布局的方式是有多个"项目",每个项目都带有相同的复选框.我正在尝试根据复选框值的组合和 ID(甚至标题,如果是更理想的话). 当前我使用以下内容,它将选择复选框,但对于项目1,项目2,第3项等等,它将为每个复选框选择,否则我需要为每个选项选择不同的选项.我试图弄清楚我如何根据ID(122)甚至标题(项目1)缩小选择? ? $("input:checkbox[value='See Notes']").attr("checked", true); 这是我的HTML对每个项目的样子: {"Id":"122"} Item 1
18 2024-01-16
编程技术问答社区