Chrome用户脚本是否像Greasemonkey脚本那样与全局命名空间分开?
我知道greasemonkey脚本是自动包裹在匿名函数以某种方式隔离的,以防止它们与页面中的脚本冲突. Chrome用户订阅也会发生同样的事情吗? 解决方案 Yes, Greasemonkey scripts are normally wrapped in an匿名函数. And, Chrome Usercript显然太. 但是,更重要的是,greasemonkey脚本通常是 1 包裹在 xpcnativeWrapper 沙盒,而Google Chrome将用户标记转换为扩展名,而因此,您无需将脚本代码包装在匿名函数中以出于安全目的而受到保护. 只要注意: 如果您将代码直接注入页面(创建标签),则可以通过页面的JS. 可以看到该代码 如果您使用unsafeWindow,则该页面可以从理论上跟随它并获得略有提高特权. 风险很低,我还没有在野外找到任何有记录的漏洞. ~~~ 最重要的是,在两个浏览器中,脚本都隔离到不同程度. (
0 2024-02-26
编程技术问答社区
如何使用angularjs与greasemonkey来修改网页?
我想使用AngularJS和GreaseMonKey修改网页的行为.我想知道,最好的方法是什么?在我写一些角度代码之前,我是否应该使用jQuery将诸如" ng- *"之类的属性注入?还是我只能坚持到angularjs? 谢谢. 解决方案 关于从JavaScript代码中动态修改AngularJS内容的一般答案: angularJS "> angularjs + jquery:如何获得动态内容在Angularjs工作 总结一下,当您将ng-*属性从JavaScript代码中放入DOM时,它们不会自动挂起来;但是AngularJS提供了$compile函数,用于将新的HTML内容与JavaScript中的AngularJS属性连接. 那么,这在GreaseMonKey/userscript方面是什么意思? 为此,我假设您的GreaseMonKey脚本正在修改已经使用angularJS的现有页面,并且您要添加的AngularJS内容使用该页面上的Angu
0 2024-02-23
编程技术问答社区
如何跟踪我的Greasemonkey脚本有多少次自动升级下载?
我有一个页面,其中包含一系列链接到GreaseMonKey用户标记.这些Userscript设置了@updateURL参数,因此,当我将新版本上传到已安装脚本的页面人员时,请自动更新其版本,或者被问到他们是否要升级. 这一切都很好.我在托管页面上安装了Google Analytics(分析),因此我可以看到该页面获得了多少个命中,但是我想知道的是有多少人获得了更新. 正常的分析无法正常工作,因为他们都依靠某人单击链接,但是GreaseMonKey下载了更新的文件而无需单击任何内容(或者,据我所知,触发了分析中的页面命中). . 我假设我需要服务器端解决方案,但是我不知道它会是什么样.也许以上关于通用汽车的所有内容都是无关紧要的,一个简单的问题是: 我如何跟踪从我的服务器下载文件的多少次(而不依赖于下载链接上的点击单击)? [编辑以获取更多信息] @Brock Adams感谢您的答案 - 这是非常详细的,正是我想要的.我不知道单独的meta.js选项,但是在其
0 2024-01-26
编程技术问答社区
如何在按下OK键后停止显示JavaScript警报
如果我在Facebook收件箱中有一些东西,我想显示一个警报.我认为可以使用usercripts轻松完成...这就是我到目前为止的目标(感谢document.addEventListener("DOMNodeInserted", function() { var count; if ((count=parseInt(document.getElementById("fb_menu_inbox_unread_count").textContent)) > 0) alert("You have "+count+" new message"+(count==1 ? "" : "s")+"."); }, true); 这很棒,除了单击"确定"并不断弹出后,消息被卡在循环中.在我单击"解散警报"之后,有没有办法停止消息? 解决方案 添加一个变量,该变量可以跟踪最后有多少消息,并且没有显示该变量是否没有更改. 类似: document.addEventListener(
2 2024-01-22
编程技术问答社区
如何从GM_xmlhttprequest返回一个值?
我在这里有此代码: var infiltrationResult; while(thisOption) { var trNode = document.createElement('tr'); var tdNode = document.createElement('td'); var hrefNode = document.createElement('a'); infPlanetID = thisOption.getAttribute('value'); var myURL = "http://www.hyperiums.com/servlet/Planetinf?securitylevel=90&newinfiltr=New+infiltration&planetid=" + PlanetID + "&infplanetid=" + infPlanetID; GM_xmlhttpRequest({ metho
22 2024-01-22
编程技术问答社区
如何用用户脚本覆盖警报功能?
在网站上有这样的代码(其网站上的网站) 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
4 2024-01-22
编程技术问答社区
Greasemonkey等待ajax
我有这个代码我要执行它,它应该用"/thetword/" e 中的短语打开任何链接 // ==UserScript== // @name Test // @namespace Test // @description Test // @version 1 // @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js // @grant none // @include http://website.com/ // ==/UserScript== setTimeout(testLinks, 10000); function testLinks() { var UseThisone = $("a:contains('/profile/')"); GM_openInTab(UseThisone[0].href); } 我只是用超时
2 2024-01-22
编程技术问答社区
连接过多的问题
我正在使用gm_xmlhttprequest(greasemonkey xmlhttprequest)与我的应用程序进行通信.每半秒钟,它会发送一些JSON来更新页面状态.我正在Firefox中运行3页.使用netstat -a我得到了这些结果. 这超过200行.为什么我使用这么多端口!?!我怎么...不这样做?并且仍然与我的应用程序进行通信. 注意:我在(示例google.com)上的3页与我的域(Localhost)不匹配,因此我很确定普通的XMLHTTPRequest将无法使用(我没有尝试过.我使用JQuery作为包装器) Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:1234 My-PC:0 LISTENING TCP 127.0.0.1:1234
2 2024-01-22
编程技术问答社区
使用jQuery检测新推文的加载时间?
您知道当您滚动到配置文件页面的底部时(我说的是用户的个人页面,而不是时间轴)时,新推文会自动加载新推文.我正在编写一个用户订阅,每当加载这些新推文时,我都想执行一个函数. ,但我无法找到一种检测此新推文已加载事件的方法.我认为它是AJAX请求,对吗?因此,我尝试了以下两个功能,但无济于事. $(document).ajaxComplete(function() { alert("Complete! New tweets loaded!"); }); $(document).ajaxSuccess(function() { alert("Success! New tweets loaded!"); }); 这是我到目前为止所拥有的.当页面首先加载时,这起作用.但这不会影响向下滚动后加载的推文. // ==UserScript== // @name CoolScript // @include https://twi
0 2024-01-21
编程技术问答社区
在内部标签(不是浏览器标签)的变化上运行Greasemonkey脚本?
我正在尝试构建一个脚本,以改变用户中的标签页面 - 堆栈溢出的profile部分. 我测试了脚本并运行.问题在于,当我单击排序选项[ fotes ]和[ name ]时,我想重新运行它. 我尝试过: 触发jQuery ready事件. 附加onclick处理程序(由于它在页面重新加载之前运行,这是没有用的). 将load带有标签等的事件侦听器将其附加到表格等. 我敢肯定,我在这里缺少一些很明显的东西.我怀疑涉及一些异步重新加载,但我不明白要进行这项工作的必要措施. 任何人都可以解释我缺少的东西(或将我指向一些解释的文档)? 解决方案 这是一个常见的问题.该页面正在使用Ajax来替换其内容的一部分.因此,触发jQuery的ready事件将无法使用,因为只有在初始,全页加载之后启动. 这是通常的解决方法/方法.我只推荐第一个: 使用强大的轮询实用程序,例如 waitforkeyelements().这需要加载外部脚本(通常不是问题),并且
0 2024-01-21
编程技术问答社区
用AJAX提交时,Greasemonkey脚本将文本追加到表单中?
所以我正在为MYBB论坛制作GreaseMonKey脚本.它的作用是,当您提交帖子时,它会将代码添加到帖子的开头和结尾.好吧,即使这是一个不好的解释,只要看一下代码,它就解释了自己 function form_submit(event) { var form = event ? event.target : this; var arTextareas = form.getElementsByTagName('textarea'); for (var i = arTextareas.length - 1; i >= 0; i--) { var elmTextarea = arTextareas[i]; elmTextarea.value = "[font=Tahoma][color=white]" + elmTextarea.value + "[/color][/font]"; } form._submit(); } win
2 2024-01-21
编程技术问答社区
在Eval中设置变量(JavaScript)
我正在编写GreaseMonKey脚本(使用jQuery),我需要一些由原始页面中脚本设置的变量,例如: var rData = {"20982211":[1,0,1],"20981187":[8,0,4]}; 我从另一个页面中获取此元素并尝试对其进行评估,使其奇怪地不起作用: $.get(link_url, null, function(data) { alert("1:" + rData); eval($(data).find("script").text()); alert("2:" + rData); } 奇怪的事情在于它可以使用的火器控制台(我只是在没有.get的目标页面上直接在目标页面上尝试了评估),而当我运行脚本时,我只是尝试了.它在两个警报中都给我"无效". 有什么想法? 解决方案 ecmascript 5重新定义eval,因此
2 2024-01-21
编程技术问答社区
潘多拉ajax与waitForKeyElements不起作用
Pandora Ajax不使用WaitforKeyelements.我花了几个小时试图看看我出了什么问题而无法解决问题. 它曾经起作用,但在播放下一个曲目时行不通. // ==UserScript== // @name Pandora I am listening to // @namespace http://tampermonkey.net/ // @version 0.1 // @description Pandora I am listening to // @author You // @match http*://www.pandora.com/* // @include https://www.pandora.com/station/play/* // @require https://gist.githubusercontent.com/BrockA/2625891/raw/9c9
0 2024-01-21
编程技术问答社区
如何在greasemonkey中进行同步的AJAX调用?
我有一个URL列表,需要一个接一个地加载每个页面. 这是我心中的主要功能. mainFunction() { loop { // Loop through URL list oPage = func1(URL); //Get page contents aResult = func2(oPage); //Analyse the contents func3(aResult); //Do current page modifications } } func1使用gm_xmlhttprequest,这是异步的,因此opage在可以检索页面内容之前会导致函数的"未固定"作为函数结束. func2也使用GM_XMLHTTPRequest,因此即使是不确定的opage,Aresult也会不确定. 关于如何使所有这些工作的想法? func1 func2和func3应该在整个脚本中重复使用,这些功能都可以在脚本的不同部分中独立使用或一起使用. 解决方案
4 2024-01-21
编程技术问答社区
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
14 2024-01-21
编程技术问答社区
选择图像之后,如何使用WaitforKeyements显示信息?
我编写了一个脚本,将图像源URL中包含的数字添加到页面上.它效果很好! 但是,我也希望它运行在具有AJAX驱动标签的页面上. 我已经尝试使用waitForKeyElements玩耍,但是我不知道如何使它起作用,而且我不了解jQuery. 当我使用#dolls时,它将所有选项卡的所有内容都放在页面上...当我使用div.dolls时,它会禁用按钮加载娃娃. // ==UserScript== // @name Dex# of Pokedolls // @namespace http://trueidiocy.us // @include http://www.thepikaclub.co.uk/adopt/dolls.php?action=collection // @include http://www.thepikaclub.co.uk/adopt/dolls.php?action=giveaway // @include
12 2024-01-21
编程技术问答社区
一旦有元素存在,脚本就会触发事件?
我正在尝试编写一些GreasemonKey脚本,以在Facebook中完成一些任务,例如隐藏新闻等. 问题是:我对DOM中尚未存在的元素有一个ID.这是击中帖子的箭头时出现的小盒子. 我如何通过jQuery创建事件处理程序,该jQuery在元素存在后立即启动? 解决方案 这是一个常见的问题.您可以通过使用 waitForKeyElements()实用程序来表现出它们出现的元素. (请参阅" ajax request上的fire greasemonkey脚本" 例如.) . 我不确定您的意思是"击中帖子箭头时出现的小盒子",但总的来说,您会: 确保您的脚本有jQuery.将其添加到// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js require-in waitForKeyElements: // @require https://gist.gith
2 2024-01-21
编程技术问答社区
Twitter用户脚本会影响到预期(@包含的)以外的页面?
以下Userscript旨在在我自己的Twitter个人资料页面上工作(不是时间轴). // ==UserScript== // @name CoolScript // @include https://twitter.com/IJNanayakkara // @include https://twitter.com/IJNanayakkara/status/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @version 1.0 // @license GPL v3 or any later version (ht
0 2024-01-21
编程技术问答社区
如何下载/只读一个文件的前80KB?
我正在为具有许多Flash文件的网站制作GreaseMonKey脚本.我想制作闪光灯的哈希,问题是闪存文件最多可达10兆字节. 这很慢;我希望只能抓住第一个80kb进行哈希.最终结果将是将某些包含不必要内容的闪存文件录制的简便方法. 我的脚本如何仅获取文件的前80 kb(左右)? 解决方案 发送例如: $.ajax ( { url: 'http://TARGET_SERVER.COM/TARGET_PATH/TARGET_FILE.FLV', headers: { Range: "bytes=0-80000" }, success: function (Resp) { console.log(Resp); } } ); (对于与目标页面相同的文件.) 用于跨域文件,请使用 gm_xmlhttprequest() GM_xmlhttpRe
0 2024-01-20
编程技术问答社区
如何使用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
0 2024-01-20
编程技术问答社区