だから私はこのスクリプトを持っています:
links = document.getElementsByClassName('thumb');
for (var i=links.length-1; i>=0; i--)
{
links[i].href=links[i].href+'/popout';
}
変更したいページがロードされた後、スクラッチパッドで機能します。
しかし、グリースモンキーに入れると、ページが完全にロードされる前に実行され、変更する必要がある要素がそこになく、機能しません。
gsスクリプトは次のとおりです。
// ==UserScript==
// @name popout
// @namespace PylonPants
// @include http://*.twitch.tv/directory/*
// @version 1
// ==/UserScript==
//if ('loading' == document.readyState) {
// alert("This script is running at document-start time.");
//} else {
// alert("This script is running with document.readyState: " + document.readyState);
//}
// script runs at readyState = interactive and that brakes it
// do not know how to make it wait till complete
links = document.getElementsByClassName('thumb');
alert(links[0]); // i get "undefined"
for (var i=links.length-1; i>=0; i--)
{
alert('the script works'); //i never reach here
alert(links[i].href); // nor here
links[i].href=links[i].href+'/popout';
}
alert('crazy'); // i get this then the page loads fully.