首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得Greasemonkey脚本的原始安装URL?

如何获得Greasemonkey脚本的原始安装URL?
EN

Stack Overflow用户
提问于 2012-09-27 02:55:18
回答 2查看 219关注 0票数 1

我有一个站点在几个环境中运行在不同的URL上(如dev.mysite.com、qa.mysite.com、uat.mysite.com等)。

在每个环境中都有一个Greasemonkey脚本(myGM.user.js),但是它的版本可能是不同的,根据环境的不同,需要调用不同的web服务来获取一些数据。

在我的用户脚本中,我希望获得最初安装该用户脚本的URL,这样我就可以提取主机并使用它作为我的web服务URL的前缀。

例如,如果我的脚本是从

http://dev.mysite.com/myGM.user.js

我想要

http://dev.mysite.com/myGM.user.js

提取

http://dev.mysite.com/

从它和电话

http://dev.mysite.com/myWebService/getData

获取数据。

实现这一目标的最简单方法是什么?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 21:01:44

最后,我向与myGM.user.js相同的文件夹中添加了一个ASPX页面(可能是PHP或其他什么)。它只是确定当前主机(服务器端)并输出为文本。

所以如果你浏览

http://dev.mysite.com/getHost.aspx

我们的反应是

http://dev.mysite.com/

如果你浏览

http://uat.mysite.com/getHost.aspx

反应将是

http://uat.mysite.com/

然后,在我的myGM.user.js中我添加了

// @resource rootUrl GetSiteRoot.aspx

此资源指令获取一个相对于安装用户脚本的URL的URL,并与用户脚本一起下载响应。

这让我可以打电话

GM_getResourceText('rootUrl')

在用户脚本的主体中,并且确切地知道我的脚本是从w/o安装到哪里的,因此必须从环境到环境进行任何更改。

但是,我将提交一个特性请求,以便添加GM_Info API。

票数 1
EN

Stack Overflow用户

发布于 2012-09-27 04:11:05

尽管Greasemonkey插件记录了脚本的原始安装URL,但是这个信息对Greasemonkey脚本来说是不可用的。

它看起来像是应该由信息提供的东西,但是它不是,你可以尝试打开一个功能请求

目前,解决的唯一方法是在每个地方都有稍微不同的脚本版本。(诚然,你已经这么做了。)具体来说,在脚本的元数据块中添加和更改一行。

您可以使用指令,如下所示:

代码语言:javascript
复制
// ==UserScript==
// @name        YOUR SCRIPT
// @include     http://YOUR_SERVER.COM/YOUR_PATH/*
// @downloadURL http://qa.mysite.com/myGM.user.js
// ==/UserScript==

或者创建您自己的指令,如下所示:

代码语言:javascript
复制
// ==UserScript==
// @name            YOUR SCRIPT
// @include         http://YOUR_SERVER.COM/YOUR_PATH/*
// @myInstallLocale http://dev.mysite.com/myGM.user.js
// ==/UserScript==

脚本的位置将如下所示:

代码语言:javascript
复制
var dwnloadURL   = "";
var dwnldURLMtch = GM_info.scriptMetaStr.match (/\n\s*\/\/\s+@downloadURL\s+(.+?)\s*\n/i);
if (dwnldURLMtch  &&  dwnldURLMtch.length) {
    dwnloadURL   = dwnldURLMtch[1];
}
console.log (dwnloadURL);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12613421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档