【问题标题】:Greasemonkey script only loads with CTRL + F5?Greasemonkey 脚本仅使用 CTRL + F5 加载?
【发布时间】:2013-03-22 15:21:19
【问题描述】:

我为批量关注/取消关注 Twitter 用户创建了这个 Greasemonkey。该脚本工作得很好。但是,当我第一次访问包含列表中的一个页面时,它并不总是(几乎永远不会)加载。

例如,如果我转到twitter.com/followers,除非我使用 CTRLF5(从服务器刷新页面内容),否则脚本不会加载。

我不确定 Greasemonkey 脚本是否应该这样运行,或者我的代码中有什么需要更改的地方?

我的 GM 脚本:

// ==UserScript==
// @name            Brainstack.net "YOU Follow (Beta)"
// @namespace       net.brainstack.gm
// @description     Script for automating the following of users from the Twitter Followers page
// @require         http://gm.brainstack.net/tasa/tasa.js
// @resource        tasa_CSS http://gm.brainstack.net/tasa/tasa.css
// @downloadURL     http://gm.brainstack.net/tasa/Brainstack.net_tasa.user.js
// @updateURL       http://gm.brainstack.net/tasa/Brainstack.net_tasa.meta.js
// @include         https://twitter.com/followers*
// @include         https://www.twitter.com/followers*
// @include         https://twitter.com/*/followers*
// @include         https://www.twitter.com/*/followers*
// @include         https://twitter.com/*/following*
// @include         https://www.twitter.com/*/following*
// @include         https://twitter.com/following*
// @include         https://www.twitter.com/following*
// @include         https://twitter.com/search/users?*
// @run-at          document-end
// @grant           GM_getResourceText
// @grant           GM_addStyle
// @version         1.14
// ==/UserScript==

//add CSS to head
var CSS = GM_getResourceText("tasa_CSS");
GM_addStyle(CSS);

//hook to the page load
bsnet_app_page_load();

你可以download and/or install the script at gm.brainstack.net

谢谢!

【问题讨论】:

  • +1 用于通过链接包含完整代码。但是这个 Q 接近于“过于本地化”和/或代码审查。 (大部分代码在 tasa.js 中,对于 SO 问题来说这有点多。尝试将问题代码缩减为 an SSCCE

标签: javascript ajax twitter greasemonkey


【解决方案1】:

此问题与I have to refresh the page for my Greasemonkey script to run? 涵盖的问题类型相同。阅读、理解并使用该答案的技巧在“新”页面上“触发”您的脚本。

此外,tasa.js 中的脚本代码具有以下内容:

var localStorageString = localStorage['bsnet_app_follower'];
if (localStorageString.length > 0){

这会使脚本崩溃,尤其是在早期运行时。

那种代码应该是

var localStorageString = localStorage['bsnet_app_follower'];
if (localStorageString  &&  localStorageString.length > 0){


可能还有其他问题(一眼看不到;也没有调试脚本),但这不是代码审查的地方。

【讨论】:

  • 谢谢@brock。感谢您的反馈。我将浏览另一篇文章并将这些技术应用到我的脚本中。很难没有同行来审查我的代码 ;-)
  • 不客气,祝你好运。有a site for code reviews
猜你喜欢
  • 1970-01-01
  • 2021-03-29
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 2014-10-18
相关资源
最近更新 更多