我在 jesus2099/konami-command#372 中注意到 Firefox v57 + Greasemonkey v4 只适用于完整的 URL https?://host.tld/pathname
而不再只适用于/pathname
。
Firefox v57 + 另一个 GM 引擎不受此回归影响,这就是我在这里开票的原因。
在我的解决方法中,我不得不在我的 URL 前面附加self.location.protocol + "//" + self.location.host +
。
从内容脚本上下文(运行用户脚本)运行请求必须使用完整的 url。
如果您不想使用完整的 url,那么您可以使用window.wrappedJSObject
并使用exportFunction()
导出运行所需的任何函数(onreadystatechange 等)。 我的建议是使用完整的网址。
非常感谢您的帮助。
好的,所以您的意思是它符合 WebExtensions 系统的规范,对吗?
我不知道这个 WebExtensions 的东西,但它似乎是一个标准......?
我不记得在GM v4 中为作者的博客文章阅读过有关此特定回归的任何内容。
确定这种回归是永久性的吗?
确定这种回归是永久性的吗?
也许。 我真的不知道。 如果可以创建适当的沙箱,那么<strong i="7">@grant</strong> none
可能不会有这些问题。 但是如果需要一些特权 API,那么这些步骤可能是必要的。 球真的在 Mozilla 的球场上。
FTR 我的脚本是<strong i="5">@grant</strong> none
脚本。
我让项目负责人关闭或不关闭此票证。
我会适应的。
这不是故意的,因此不应期望它是永久性的。 我们可以完全解析基于文档作为根的非绝对路径。
请注意,正确的基本网址是: document.baseURI
(与<base href="...">
)
我可以确认,jQuery AJAX 仅适用于路径 URL。
Firefox 57,最新的 Greasemonkey。
$.ajax({
url: '/some/path',
success: () => {}
});
我的 AJAX 适用于旧版 Firefox(WebExtensions 之前)
上述修复已打包在新的测试版中:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub
测试和确认将不胜感激!