Firefox userChrome.js greasemonkeyスクリプトスレ10
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
2009/09/24(木) 14:54:57ID:OVXUnoAu0■まとめサイト
firefoxまとめサイト
ttp://firefox.geckodev.org/
ttp://firefox.geckodev.org/index.php?cmd=read&page=Greasemonkey
ttp://firefox.geckodev.org/index.php?cmd=read&page=userChrome.js
■前スレ
firefox userChrome.js greasemonkeyスクリプトスレ 9
ttp://pc12.2ch.net/test/read.cgi/software/1247292176/
■拡張機能
greasemonkey
ttp://www.greasespot.net/
Userscripts.org
ttp://userscripts.org/
"alta88's userChromeJS"
ttp://userchromejs.mozdev.org/index.html
userChromeJS フォーラム
ttp://forums.mozillazine.org/viewtopic.php?f=48&t=1006795
"zeniko's userChrome.js"
ttp://mozilla.zeniko.ch/userchrome.js.html
userChrome.js フォーラム
ttp://forums.mozillazine.org/viewtopic.php?t=397735
ttp://forums.mozillazine.org/viewtopic.php?t=556229
userChrome.js 0.8 (FX) - Add-ons Mirror
ttp://forum.addonsmirror.net/index.php?showtopic=6878
0937名無しさん@お腹いっぱい。
2009/12/30(水) 13:41:52ID:15sDDQHZP例えばすべてのサイトで、文字列「うんこ」を→「XXX」とか「排泄物」に置き換えたいんですが・・・
0938名無しさん@お腹いっぱい。
2009/12/30(水) 15:56:20ID:Sjxexl5J0// ==UserScript==
// @name それはあなたです
// @revision 1
// @author blueberrystream a.k.a. KID
// @namespace http://kid0725.usamimi.info
// @include http://twitter.com/*
// @include https://twitter.com/*
// ==/UserScript==
void(function() {
// 置き換える文字列を定義
var REPLACE_TARGET = new Array();
REPLACE_TARGET.push("それはあなたです!:ずばりあなたでしょう!");
REPLACE_TARGET.push("ツイート:Tweet");
////// こっから先は変えないでください ////////////////////////////////////////////////////////////////////////////////
for (var i = 0; i < REPLACE_TARGET.length; i++) {
var replaceArray = REPLACE_TARGET[i].split(":");
document.getElementsByTagName("body")[0].innerHTML = document.getElementsByTagName("body")[0].innerHTML.split(replaceArray[0]).join(replaceArray[1]);
}
})();
0939名無しさん@お腹いっぱい。
2009/12/30(水) 15:56:51ID:vDBh50/p0もう少し綺麗な例えはなかったのか・・・。
前スレより。
664 :名無しさん@お腹いっぱい。[sage]:2009/09/01(火) 16:43:12 ID:3DCcO55/0
>>663
// 文字コードはUTF-8で保存すること
var patterns = {'firefox':'ファイアフォックス', 'addon':'アドオン'};
var nodes = document.evaluate('.//text()', document, null, 7, null);
for(var i = 0, node; node = nodes.snapshotItem(i); i++){
for(var key in patterns) node.nodeValue = node.nodeValue.replace(key, patterns[key], 'gi');
}
0940名無しさん@お腹いっぱい。
2009/12/30(水) 16:14:45ID:2DwRGjeV0流石に酷すぎて苦言を呈さずにはいられないな
そんな糞コード貼るな
0941名無しさん@お腹いっぱい。
2009/12/30(水) 16:47:52ID:da1Ik+aC0FoxReplace :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/6510
アドオンならある。
0942名無しさん@お腹いっぱい。
2009/12/30(水) 17:49:01ID:15sDDQHZPありがとう。>>940でいいのかな、やってみます。
>>941いいアドオン紹介してくれてありがとう。
でもAuto-ReplaceにしてGmailとかGoogleリーダー行っても画面が真っ白けになってしまう・・・
0943名無しさん@お腹いっぱい。
2009/12/30(水) 17:49:55ID:15sDDQHZP○ありがとう。>>939でいいのかな、やってみます。
0944名無しさん@お腹いっぱい。
2009/12/30(水) 22:39:16ID:15sDDQHZPユーザスクリプトを実行するページは 「*」 としてすべてのサイトをしているつもりですが
なぜかGmailだけは変換されないです・・
どうすればGmailも変換されるようになるのでしょうか
他のサイトはうまく変換されています
0945名無しさん@お腹いっぱい。
2009/12/30(水) 23:16:17ID:/xxu3whr00946名無しさん@お腹いっぱい。
2009/12/30(水) 23:34:51ID:15sDDQHZPFoxReplace doesn't work automatically with content
loaded or created with JavaScript, because the auto-replace is triggered by the load event.
939のやり方でもAjaxは無理なのですねぇ・・orz
0947名無しさん@お腹いっぱい。
2009/12/31(木) 06:07:38ID:hnKhVBag00948名無しさん@お腹いっぱい。
2009/12/31(木) 08:34:21ID:PjuW10f+0こういう文句だけ言う奴って、ほとんどがコード書かないよな。
そもそも苦言じゃなくて罵倒だ。
スマート且つ高速な文字列置換スクリプト書いてみてよ。
0949940
2009/12/31(木) 10:24:48ID:2ccNXxl00作者かな
(function() {
const PATTERN = {
__proto__: null,
'うんこ': 'XXX',
'ウンコ': '排泄物'
};
const PATTERN_SHORTCUT = RegExp([x for (x in PATTERN)].join('|'));
replace(document);
document.addEventListener('DOMNodeInserted', function(event) {
replace(event.target);
}, false);
function replace(target) {
target.normalize();
var x = document.evaluate('descendant::text()', target, null, 6, null);
for (var i = 0, len = x.snapshotLength; i < len; i++) {
var textNode = x.snapshotItem(i);
textNode.nodeValue = textNode.nodeValue.replace(PATTERN_SHORTCUT, function($0) PATTERN[$0]);
}
}
})();
0950名無しさん@お腹いっぱい。
2009/12/31(木) 12:07:49ID:3Dh73ojh0だからその例えは使うなやボケンクズ
0951名無しさん@お腹いっぱい。
2009/12/31(木) 12:12:21ID:V+LWk0eo0大人ならそんな人たちをなまあたたかい目で見守ってあげようよ
0952名無しさん@お腹いっぱい。
2009/12/31(木) 13:18:24ID:bbIYK/bAPusercontent.cssでも駄目?
0953名無しさん@お腹いっぱい。
2009/12/31(木) 16:00:29ID:F4kcN+Fx00954名無しさん@お腹いっぱい。
2009/12/31(木) 17:16:55ID:1vEupoSs0cssて…
javascriptはできるが面倒
0955名無しさん@お腹いっぱい。
2009/12/31(木) 18:27:05ID:QN9wEelv0俺はJavaScriptは素人だから間違ってるかもしれないけど
>>939みたいにreplaceにgフラグ入れたほうがいいと思うけど
0956名無しさん@お腹いっぱい。
2009/12/31(木) 19:00:52ID:/OTnW0DS0新年も良い年でありますように
0957名無しさん@お腹いっぱい。
2009/12/31(木) 19:13:32ID:2ccNXxl00> replaceにgフラグ
本当だ。サンクス
正規表現だから入れるならここだけど
const PATTERN_SHORTCUT = RegExp([x for (x in PATTERN)].join('|'), 'g');
あと nodeType のチェックは・・・まあいいか
いわゆる Ajax 対応はどう頑張ったって重くなるぞ
0958名無しさん@お腹いっぱい。
2009/12/31(木) 20:20:25ID:bbIYK/bAP>>957
Ajaxで>>949動いたよ、949、955ありがとう!
厚かましいですが、大文字小文字区別なくヒットすることはできますかね
0959名無しさん@お腹いっぱい。
2009/12/31(木) 20:57:02ID:TkNen3jp00960名無しさん@お腹いっぱい。
2009/12/31(木) 20:58:29ID:lgR0LdMU00961名無しさん@お腹いっぱい。
2009/12/31(木) 21:03:33ID:IKq/EPpJ0待ち無しで連続submitすると2回目以降が無視される。
原因は分かっててsubmitで開いたページがロードされてないため
(submitで開いたページのタイトルが表示されるタイミングだと、再度submitが可能)
このsubmitで開いたページのタイトルが表示されるタイミング(onload?)を判定することって可能?
0962名無しさん@お腹いっぱい。
2009/12/31(木) 21:08:22ID:3LpAXGej0お次は半角全角とか平仮名片仮名の違いも…とか言いそうな勢いだな
とりあえず大文字小文字なら>>939のごとく置換オプションに i を追加すればいい
こっちに書いたら?
Firefox userChrome.js greasemonkeyスクリプトスレ10
http://pc12.2ch.net/test/read.cgi/software/1253771697/
0964名無しさん@お腹いっぱい。
2010/01/01(金) 00:13:20ID:S48mU1ro00965名無しさん@お腹いっぱい。
2010/01/01(金) 00:50:36ID:O/jY7tc50必ず小文字で登録するって条件付きでいいなら
>>957の'g'を'gi'に変えて>>949のPATTERN[$0]をPATTERN[$0.toLowerCase()]に変える
0966名無しさん@お腹いっぱい。
2010/01/01(金) 03:23:11ID:Rl3oMav10php でいう array_keys が [x for (x in PATTERN)] で表現できるなんて目から鱗だわ
それと
str.replace(PATTERN_SHORTCUT, function($0) PATTERN[$0])
これって
str.replace(PATTERN_SHORTCUT, function($0) { return PATTERN[$0]; })
と同じだと思うんだが、もっと短く書けるもんだな
こういう書き方ってなんてぐぐればいいの?
0967名無しさん@お腹いっぱい。
2010/01/01(金) 03:31:46ID:O6bhdUO100968名無しさん@お腹いっぱい。
2010/01/01(金) 04:03:27ID:O/jY7tc500969名無しさん@お腹いっぱい。
2010/01/01(金) 04:27:14ID:Rl3oMav10ありがとう
他では動かないというのは残念だけど、ひとつ勉強になったわ
0970名無しさん@お腹いっぱい。
2010/01/01(金) 16:05:39ID:Oeus8sndPありがとう。
スクリプト分からないのでここで教えを請いてコピペしてます。とにかくサンクス!
0971名無しさん@お腹いっぱい。
2010/01/01(金) 17:49:14ID:4AA1YA2i0きちんとした方法があるんだろうか
0972名無しさん@お腹いっぱい。
2010/01/01(金) 20:42:04ID:/mzPufMf0蓮舫でもマジコン呟いたんだぜwww
0973名無しさん@お腹いっぱい。
2010/01/01(金) 21:44:08ID:xhhzXI1M0PARでんねん
0974名無しさん@お腹いっぱい。
2010/01/01(金) 23:54:58ID:/OtiV8Zl00975名無しさん@お腹いっぱい。
2010/01/01(金) 23:58:48ID:o0IlechR00976名無しさん@お腹いっぱい。
2010/01/02(土) 00:16:04ID:B6j0yK6R00977名無しさん@お腹いっぱい。
2010/01/02(土) 19:26:37ID:Xz+2StiC00978名無しさん@お腹いっぱい。
2010/01/02(土) 21:49:50ID:z5V7/SP500979名無しさん@お腹いっぱい。
2010/01/02(土) 22:01:33ID:gdZYhAjZ00980名無しさん@お腹いっぱい。
2010/01/02(土) 23:07:32ID:Xz+2StiC0お騒がせしましたprefs.jsがおかしかったようです
0981名無しさん@お腹いっぱい。
2010/01/02(土) 23:48:37ID:4yhf24rTP>>965で
'ラーメン|そば|うどん' : '麺類',
'お茶漬け|リゾット|炒飯': '米類'
みたいに複数の文字列をまとめて変換することはできますか?
上のやり方だとundefinedになってしまいます
0982名無しさん@お腹いっぱい。
2010/01/02(土) 23:51:06ID:qtQn/mIp00983名無しさん@お腹いっぱい。
2010/01/02(土) 23:54:35ID:4yhf24rTPもっとスマートに書けるのかな?と無知なりに背伸びしてみましたw
0984名無しさん@お腹いっぱい。
2010/01/03(日) 08:20:18ID:Q2hbrI1PP0985名無しさん@お腹いっぱい。
2010/01/03(日) 09:36:25ID:W+O74gYB0置換前の対象を分割(ていうか論理和(OR))すればいいだけだから、きっと>>940がまた来て追記してくれるよ。
0986名無しさん@お腹いっぱい。
2010/01/03(日) 12:37:55ID:bdFyTbdF0速度的には面倒でもいちいち手で追加した方が有利だと思うけどなあ
0987981
2010/01/03(日) 21:13:07ID:psk3HBFgPありがとうございます
レス数が950を超えています。1000を超えると書き込みができなくなります。