【问题标题】:How come my simple userscript doesn't work?为什么我的简单用户脚本不起作用?
【发布时间】:2016-02-18 08:35:09
【问题描述】:

我制作了一个简单的用户脚本,用于隐藏视频游戏网站上的某些比赛。

// ==UserScript==
// @name CSGL BO1 Removal
// @description Removes all BO1s on CSGL
// @namespace SP
// @include http://www.csgolounge.com/*
// @include http://csgolounge.com/*
// @match http://www.csgolounge.com/*
// @match http://csgolounge.com/*
// @grant       GM_addStyle
// @require     http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @version 1.0
// ==/UserScript==

var bo1Games = $("div.match span.format:contains('BO1')");
bo1Games.parent().parent().parent().parent().parent().hide();

当从 chrome 控制台运行时,这工作得非常好。

谁能告诉我为什么它在实施时不起作用?

【问题讨论】:

  • 可能运行得太早 - 等待文档 DOMContentLoaded 事件可能吗?或者如果内容是在此类事件之后动态生成的,则您必须注意 DOM 的变化并做出适当的反应
  • 你能显示 HTML 吗?
  • 同意X,代码应该封装在ready块中。
  • @MatthewLymer 这是一个例子pastebin.com/fqWe5RXq
  • 为我工作。您可以访问http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js 吗?删除@require 行并将GM_addStyle 更改为none 怎么样?您使用的是最新版本的浏览器和 GreaseMonkey 吗?

标签: javascript jquery greasemonkey


【解决方案1】:

尝试从包含中删除撇号:

$("div.match span.format:contains(BO1)");

HTML 示例还显示格式跨度包含字符串 BO3 - 我认为这不是您的问题?

【讨论】:

  • HTML 示例只是其过滤内容的一个示例。这是错误的图像(遗憾的是,您的修复仍然得到它)i.imgur.com/HNkkG2U.png
  • 如果您单击 script.js:15,它将带您到第 15 行以显示错误的确切代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2012-10-07
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多