nei*_*ilw 7 javascript greasemonkey rally
我正在使用Greasemonkey脚本将一些文本转换为Rally页面上的链接.只有在我重新加载页面时,脚本才能正常工作.如果我以任何方式导航到页面(链接,浏览器向前/向后),脚本都不会运行,尽管Greasemonkey菜单在底部显示我的脚本,并带有复选标记.
这是一个示例URL:
https://rally1.rallydev.com/#/4745909548/detail/userstory/6138899084/changesets
Run Code Online (Sandbox Code Playgroud)
我的匹配规则:
/^https://.*\.rallydev\.com/.*/changesets$/
Run Code Online (Sandbox Code Playgroud)
我不知道哈希是否导致问题,但重新加载时一切都很好.
不知道从哪里开始.任何帮助表示赞赏.
无法确定发生了什么,因为目标页面位于付费墙后面,而他们所谓的"免费试用"机制会破坏大块.
以下是当前行为的一些可能原因:
<iframe>不会立即加载.changesets.另外,养成/在正则表达式中间转义s 的习惯.它并不总是需要,但如果你不这样做,它最终会在[审查]中咬你.所以脚本应该使用:
// @include /^https:\/\/.*\.rallydev\.com\/.*\/changesets$/
Run Code Online (Sandbox Code Playgroud)
开始,但见下文.
解决方案的步骤:
将您@include的帐户更改为http以及URL中的尾随空格或尾随斜杠的可能性.使用:
// @include /^https?:\/\/.*\.rallydev\.com\/.*\/changesets(?:\s|\/)*$/
Run Code Online (Sandbox Code Playgroud)<iframe>?如果是这样,iframe网址是什么?考虑使用以下代码:
if (window.top != window.self) {
//--- Don't run on/in frames or iframes.
return;
}
Run Code Online (Sandbox Code Playgroud)
让脚本仅在(或不在)iframe中运行,如果适用的话.
如果问题是由AJAX延迟(或加载新内容)引起的,请使用"AJAX请求中的Fire Greasemonkey脚本"中所示的waitForKeyElements()实用程序来解决问题.