Greasemonkey脚本只加载CTRL + F5?

时间:2013-03-22 15:21:20

标签: javascript ajax twitter greasemonkey

我为批量跟踪/取消关注 Twitter 用户创建了此Greasemonkey。脚本工作得很好。但是,第一次进入包含列表中的某个页面时,它不会总是(几乎从不)加载。

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

我不确定这是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 个答案:

答案 0 :(得分: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){


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