小编dar*_*red的帖子

如何使用Git管理我的greasemonkey用户脚本(以便在GitHub中托管它们)

我想使用Git来促进我的用户脚本的开发(21).另外,我也希望将它们托管在GitHub中.(在Windows 10中使用Greasemonkey和Firefox).

所以,我的问题是:使用Git管理我的用户脚本的建议方法是什么,以便在GitHub中托管它们?

  • 保留一个单独的文件夹(例如c:\my_scripts,它将是我的repo文件夹),其中包含我的userscripts文件的副本,
    即每次我更改我的一个用户脚本文件(位于gm_scripts)时,
    我必须手动将其复制gm_scripts\script_subfoldermy_scripts

  • 将我的所有用户脚本放在同一个单独的文件夹(我的repo文件夹)中,
    并将它们链接到该gm_scripts文件夹(在.bat文件中使用mklink -symbolic links),正如我在这个答案中
    读到的那样

  • 只创建一个包含我的gm_scripts内容的存储库
    (内部gm_scripts,除了我的21个用户脚本,我还安装了许多其他脚本,我必须将其包含在我的.gitignore文件中)
  • 还是有更好的方法让我想念

我注意到许多用户脚本的两位作者的回购:@Mottie和@jerone,他们在GitHub中托管了许多用户脚本,但他们遵循不同的方法:
Mottie的用户脚本位于repo的根文件夹中(只是.js文件,没有子文件夹),(截图)
jerone的用户脚本位于repo中的每个子文件夹中(截图).

我的猜测是,Mottie将他所有的用户脚本放在同一个单独的文件夹(这是repo)中,并将它们链接到该gm_scripts文件夹,
而jerone要么只保留一个单独的文件夹作为回购,带有他的脚本的副本,
或者有他的回购包含gm_scripts文件夹
(但是,jerone的的.gitignore不包含在gm_folder这些文件应该被忽视,如条目.db,.wal,.shm,config.xml …

git greasemonkey github userscripts

8
推荐指数
1
解决办法
807
查看次数

如何使用 XMLHttpRequest 在后台下载 HTML 页面并从中提取文本元素?

我想制作一个 Greasemonkey 脚本,当您在 URL_1 中时,该脚本会在后台解析 URL_2 的整个 HTML 网页,以便从中提取文本元素。

具体来说,我想在后台下载整个页面的 HTML 代码(烂番茄getElementsByClassName[0]页面)并将其存储在一个变量中,然后使用它从类名为“critic_consensus”的元素中提取我想要的文本。


我在 MDN: HTML in XMLHttpRequest 中找到了这个,所以,我最终得到了这个不幸的不起作用的代码:

var xhr = new XMLHttpRequest();
xhr.onload = function() {
  alert(this.responseXML.getElementsByClassName(critic_consensus)[0].innerHTML);
}
xhr.open("GET", "http://www.rottentomatoes.com/m/godfather/",true);
xhr.responseType = "document";
xhr.send();
Run Code Online (Sandbox Code Playgroud)

当我在 Firefox Scratchpad 中运行它时,它显示此错误消息:

跨源请求被阻止:同源策略不允许读取http://www.rottentomatoes.com/m/godfather/上的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。


附言。我不使用烂番茄 API 的原因是他们删除了其中的评论家共识

javascript greasemonkey xmlhttprequest cross-domain tampermonkey

3
推荐指数
1
解决办法
4643
查看次数

使用waitForKeyElements,是否可以阻止显示关键元素,并且只有在我的代码修改后才能显示它?

我有这个用户脚本 (在Stack Overflow的帮助下写的)用于网站metal-archives.com.

它的结构是这样的:

function appendColumn(...) {
    // code for appending column
    // code for making the table sortable   
}

waitForKeyElements ("table", appendColumn);        
Run Code Online (Sandbox Code Playgroud)

当您切换子标签(表格)时,脚本可以正常工作,除了视觉故障/延迟.

切换时,额外(第6列)最初显示为预期.但是,表格会以原始形式暂时显示,然后最终显示第6列.

要查看此内容,请安装脚本,访问此典型目标页面,然后切换子选项卡(完成唱片,主要,生命,演示,杂项等).
它看起来像这样:

桌子


我试图通过添加以下内容来显示初始表:

GM_addStyle(".display.discog {display: none;} ");
Run Code Online (Sandbox Code Playgroud)

到和的开头appendColumn():

GM_addStyle(".display.discog {display: inline !important;} "); 
Run Code Online (Sandbox Code Playgroud)

到了最后appendColumn().
但它没有任何区别.


我在该页面上使用了Firefox网络监视器,当你切换标签时似乎:

  • 代码会立即修改表(从缓存中加载?? - 因为网络监视器中没有条目).
  • 然后从服务器加载表(相关的HTML文件).
  • 然后最后一次修改表.

如何更改代码(使用waitForKeyElements时)以防止显示关键元素,并仅在我的代码修改后显示它?

或者我如何加快响应速度?

谢谢.

javascript css ajax jquery greasemonkey

1
推荐指数
1
解决办法
1005
查看次数