トップページsoftware
1001コメント403KB

firefox userChrome.js greasemonkeyスクリプトスレ 3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/11/07(水) 00:39:11ID:oCfttq850
質問は必ずまとめサイトに目を通した後にして下さい。

■まとめサイト
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

■拡張機能
greasemonkey
ttp://www.greasespot.net/
userChrome.js
ttp://forums.mozillazine.org/viewtopic.php?t=397735&sid=4b6a2d2f1d22cf05c4bda988683c1f94
ttp://forums.mozillazine.org/viewtopic.php?t=556229

■関連スレ
Mozilla Firefox usercontent.css 広告カットスレ 1
ttp://pc9.2ch.net/test/read.cgi/software/1139710935/
Mozilla Firefox Part73
ttp://pc11.2ch.net/test/read.cgi/software/1194007773/
Mozilla Firefox質問スレッド(初心者歓迎)の52
ttp://pc11.2ch.net/test/read.cgi/software/1193829630/
Mozilla Firefox 拡張機能スレッド Part25
ttp://pc11.2ch.net/test/read.cgi/software/1191202956/

■前スレ
firefox userChrome.js greasemonkeyスクリプトスレ 2
ttp://pc11.2ch.net/test/read.cgi/software/1185343069/
0153名無しさん@お腹いっぱい。2007/11/16(金) 22:29:19ID:hyZwijKg0
>>152
そのまま0.8で動く
0154初スレの802007/11/16(金) 23:39:06ID:RVK/oSY+0
>>125
GM_modoki.jslのGM_xmlhttpRequestを以下に書き換えればうまくいくかも.
function GM_xmlhttpRequest(obj){
if(typeof(obj) != 'object' || (typeof(obj.url) != 'string' && !(obj.url instanceof String))) return;

var req = new XMLHttpRequest();
req.open(obj.method || 'GET',obj.url,true);
if(typeof(obj.headers) == 'object') for(var i in obj.headers) req.setRequestHeader(i,obj.headers[i]);
['onload','onerror','onreadystatechange'].forEach(function(k){
if(obj[k] && (typeof(obj[k]) == 'function' || obj[k] instanceof Function)) req[k] = function(){
obj[k]({
status : (req.readyState == 4) ? req.status : 0,
statusText : (req.readyState == 4) ? req.statusText : '',
responseHeaders : (req.readyState == 4) ? req.getAllResponseHeaders() : '',
responseText : req.responseText,
readyState : req.readyState });
};
});

if(obj.overrideMimeType) req.overrideMimeType(obj.overrideMimeType);
if(typeof obj.data == 'string') req.send(obj.data);
else req.send(null);
}

>>140
mousemoveイベントでマウスカーソルの位置を変数に入れておいて,
必要なときにそれを参照するのが簡単じゃないかな.
マウスカーソル下の単語はevent.rangeParentとevent.rangeOffsetから探っていけるけど,
keyconfigだとどうだろう?clickイベントでなら,それで拾えるんだけど.
01551402007/11/16(金) 23:50:06ID:LwvcuW8S0
>>147
http://www.faqts.com/knowledge_base/view.phtml/aid/33674
こういう方法でイベントでカーソル下の単語を知ることはできるようなので
これを応用してできないかと思ったのですが、
まだ勉強中で実現できるかどうかよくわかってないところがあります。
すみません。
0156名無しさん@お腹いっぱい。2007/11/17(土) 00:14:09ID:LsQ6cAYz0
コンパクトメニュー下にusercontent.jsとかusermenu.jsのメニューを追加するにはどうすればいいですか?
あと001-execMenuEditor.uc.jsってのを入れたんですけどUserMenu.jsとMenuEditorが共存できそうにありません。
MenuEditorを使ったメニュー項目の並び替えはできないのでしょうか?
0157名無しさん@お腹いっぱい。2007/11/17(土) 00:39:16ID:av6mu2OE0
火狐とboonstudio、もしくはnettransport等をflv形式ファイルDL時に連携させ、
動画のタイトル名で保存させられるようなスクリプトってないでしょうか?

0158名無しさん@お腹いっぱい。2007/11/17(土) 01:02:49ID:LsQ6cAYz0
>>154
そのコードだと以下のようなエラーに。
エラー: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"
nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "
JS frame :: file:///プロファイル/chrome/GM_modoki.jsl :: anonymous :: line 55" data: no]

ソースファイル: file:///プロファイル/chrome/GM_modoki.jsl
行: 55
エラーの内容は変わってない様子。
0159名無しさん@お腹いっぱい。2007/11/17(土) 13:13:13ID:G+/jUdJB0
ブックマークするときに説明を書くのですが、その説明をブックマーク一覧でマウスオーバーしたときに
ポップアップ表示するものはあるのでしょうか。
userChromeとgreasemonkeyどちらでも構いません、知っている方が居られましたら教えていただけませんか。
0160名無しさん@お腹いっぱい。2007/11/17(土) 14:18:02ID:5yij81ED0
>>159
つ ttp://space.geocities.yahoo.co.jp/gl/alice0775/view/20071023/1193066474
0161名無しさん@お腹いっぱい。2007/11/17(土) 14:35:20ID:mn8eICOu0
以前このスレで、Open Tabs Next(nanto_vi氏作)を常に右に開くようにする改造(15行目 mOffset++ → mOffset)を教わったんですが、昨日の3.0b2pre/nightlyから正常に動かなくなってしまいました。
(右に3つ開いた後左に開いていく)
これを直すにはどこを修正すれば良いのでしょうか?
また、他の"タブの右に開く系"でも常に右に開かせる改造は可能でしょうか?
よろしくお願いします。
0162名無しさん@お腹いっぱい。2007/11/17(土) 14:52:23ID:5yij81ED0
>>161
>また、他の"タブの右に開く系"でも...
と言うことですので, オールインワンでかつ(現状では)比較的trunkに対応の早い
Tab Mix Plusを使用することを選択肢に入れてはどうでしょうか。
0163名無しさん@お腹いっぱい。2007/11/17(土) 16:00:40ID:mn8eICOu0
>>162
ああ、Tab Mix Plusを忘れてた。入れたら問題なかった。
軽くなるかと思ってuserChrome.jsに切替えてたけどそんなに違わないし、また拡張に戻ってみます。
0164名無しさん@お腹いっぱい。2007/11/17(土) 16:21:38ID:G+/jUdJB0
>>160
ありがとうございます。
希望通りの物でした。
0165名無しさん@お腹いっぱい。2007/11/17(土) 16:24:41ID:mFD1D03Q0
>>146
ありがとうございます。
0166初スレの802007/11/17(土) 17:22:56ID:2O/4iQWc0
>>158
これで駄目だったらお手上げ.
function GM_xmlhttpRequest(obj){
if(typeof(obj) != 'object' || (typeof(obj.url) != 'string' && !(obj.url instanceof String))) return;

var req = new XMLHttpRequest();
req.open(obj.method || 'GET',obj.url,true);
if(typeof(obj.headers) == 'object') for(var i in obj.headers) req.setRequestHeader(i,obj.headers[i]);
['onload','onerror','onreadystatechange'].forEach(function(k){
if(obj[k] && (typeof(obj[k]) == 'function' || obj[k] instanceof Function)) req[k] = function(){
obj[k]({
status : (function(){ try{ return req.status; }catch(e){ return 0; } })(),
statusText : (function(){ try{ return req.statusText; }catch(e){ return ''; } })(),
responseHeaders : (function(){ try{ return req.getAllResponseHeaders(); }catch(e){ return ''; } })(),
responseText : (function(){ try{ return req.responseText; }catch(e){ return ''; } })(),
readyState : req.readyState });
};
});

if(obj.overrideMimeType) req.overrideMimeType(obj.overrideMimeType);
req.send(obj.data || null);
}
0167名無しさん@お腹いっぱい。2007/11/17(土) 17:46:49ID:U5dwWWAZ0
3.0b2pre なんですが、

ttp://d.hatena.ne.jp/nyama/20070521/1179727754

が動かないのは、私だけでしょうか?
loader は zeniko 氏純正使ってます。

0168名無しさん@お腹いっぱい。2007/11/17(土) 17:56:53ID:5yij81ED0
>>167
BrowserSearch.searchBarに変わったので, 修正しないと動きません。
0169名無しさん@お腹いっぱい。2007/11/17(土) 19:10:58ID:U5dwWWAZ0
>>168
どのように直せばいいのでしょうか?
0170名無しさん@お腹いっぱい。2007/11/17(土) 19:51:07ID:mFD1D03Q0
userChrome.jsで機能するマウスジェスチャーで
階層を1つ上に上がる拡張機能 "Go Up"の機能を再現したいのですが、
どうしたらできるでしょうか?
0171名無しさん@お腹いっぱい。2007/11/17(土) 19:54:14ID:/gwdG4z60
>>170
軽量マウスジェスチャー用の次へ,前へのナビゲーションリンクコマンド(改1)
http://space.geocities.yahoo.co.jp/gl/alice0775/view/20070525/1180080346
0172名無しさん@お腹いっぱい。2007/11/17(土) 20:23:05ID:lbbWBy/s0
普通にどっか(忘れたw)に出てた気がするけどなあ。
Aliceさんのものが上で上がってるので蛇足かもしれないけど

var uri = gBrowser.currentURI;
if (uri.path == "/")
return;
var pathList = uri.path.split("/");
if (!pathList.pop())
pathList.pop();
loadURI(uri.prePath + pathList.join("/") + "/"); break;
0173名無しさん@お腹いっぱい。2007/11/17(土) 20:29:47ID:lbbWBy/s0
>>169
たぶん
BrowserSearch.getSearchBar()がBrowserSearch.searchBarに
変更になったってことだと思う。だからそこを直せば良いのでは?

var searchBar = BrowserSearch.getSearchBar();

var searchBar = BrowserSearch.searchBar;
0174名無しさん@お腹いっぱい。2007/11/17(土) 20:53:52ID:mFD1D03Q0
>>171-172
ありがとうございました。出来ました。
0175名無しさん@お腹いっぱい。2007/11/17(土) 21:47:18ID:LsQ6cAYz0
>>166
なにもかかれていないポップアップが出るようになり、エラーが出なくなりました。
しかしdel.icio.usにはポストされていません。
0176初スレの802007/11/17(土) 22:57:51ID:2O/4iQWc0
>>175
req.open(obj.method || 'GET',obj.url,true);

req.open(obj.method || 'GET',encodeURI(obj.url),true);
に直してみて貰えます?
0177名無しさん@お腹いっぱい。2007/11/18(日) 06:47:41ID:xq9pTFE40
表示しているタブのURLをクリップボードにコピーするマウスジェスチャってありますでしょうか?
0178名無しさん@お腹いっぱい。2007/11/18(日) 10:20:15ID:YSvnsAUO0
>>173
試してみましたが、残念ながら動きませんでした。
0179名無しさん@お腹いっぱい。2007/11/18(日) 10:23:13ID:ceMn4oLw0
>>176
変化なしです。
0180名無しさん@お腹いっぱい。2007/11/18(日) 16:32:06ID:bcxaZQoP0
質問です!
xml, xul, html filesのエディターで, tree構造を開いたりcollapseしたりできるようなもの
ってありますか?

xulエクスプローラというのを試しに使ってみましたが、これはそういう機能ないみたいですね
誰か情報ご存じのかた、おしえてください。
0181名無しさん@お腹いっぱい。2007/11/18(日) 17:56:15ID:b12BDbi50
GM_Modoki.jslを利用した自作のスクリプトで、似たようなエラーが出てたことがあった。

req.onerrorのときに、req.statusとかreq.statusTextを参照したり、
req.onreadystatechangeのときに、status,statusText,responseText,responseHeadersを
参照したりすると、エラーが出たことがあったので、そのあたりをばっさりコメント化したら事なきを得た。

今回の(del.icio.usの)とは関係なさそうだけど。
0182名無しさん@お腹いっぱい。2007/11/18(日) 21:03:25ID:tbvCjhHP0
>>178
>>173をそのままじゃだめですよ
変数名の大文字小文字, ソースをようく見て修正してみてください。
0183名無しさん@お腹いっぱい。2007/11/18(日) 22:25:22ID:ceMn4oLw0
Menu Editor以外にメニュー編集できる拡張あったっけ?
なんかMenu Editorだとusemenu.jsのメニュー項目が表示されたりされなかったりだし、
場所変えても再起動すると元に戻ってる。

Conpact Menu 2でusercontent.jsとかのメニューを使うにはどうすればいいでしょうか?
あとアップローダーにあるGoogle Thumbnals動かないのは俺だけ?
0184名無しさん@お腹いっぱい。2007/11/18(日) 22:41:46ID:YCD4RtVS0
ググる気もない奴がメニュー編集だの usercontent.js だのに手出すなよ。
MenuManipulator でも使っとけ。
0185名無しさん@お腹いっぱい。2007/11/18(日) 23:03:47ID:MWBFA1tj0
>>178
余計な口はさんじゃったから、余計混乱させてしまったみたいですね…
すみません。

>>182さんのおっしゃるとおり、私が変数名の大文字小文字を間違って
書いてしまったんです。でもワザとじゃないです。ホントです。
searchBarではなくてsearchbarでした。

var searchbar = BrowserSearch.getSearchBar();

var searchbar = BrowserSearch.searchBar;
0186名無しさん@お腹いっぱい。2007/11/19(月) 00:08:44ID:DbfqPlZk0
MenuManipulatorは1.5までしか対応してないんじゃ?
バージョン書き換えで動くのかな
0187初スレの802007/11/19(月) 00:29:14ID:I8pRIDhQ0
>>179
お手上げです.一応調べてはみますがあんまり期待せんでください.
はてブもdel.icio.usも使ってないんで.

>>181
GM_modokiに限った話じゃなく,nsiXMLHttpRequest.status等で例外が発生することがあるみたいで,
ググってみたら似たような話がちらほら出てきました.
0188名無しさん@お腹いっぱい。2007/11/19(月) 00:49:05ID:glVowEf70
>>179
これで動作すると思います
function GM_xmlhttpRequest(obj){
if(typeof(obj) != 'object' || (typeof(obj.url) != 'string' && !(obj.url instanceof String))) return;
var req = new XMLHttpRequest();
req.open(obj.method || 'GET',encodeURI(obj.url),true);
if(typeof(obj.headers) == 'object')
for(var i in obj.headers) req.setRequestHeader(i,obj.headers[i]);
if(typeof obj.headers == 'object'){ for(var i in obj.headers) req.setRequestHeader(i,obj.headers[i]); }
['onload','onerror','onreadystatechange'].forEach(function(k){
if(obj[k] && (typeof(obj[k]) == 'function' || obj[k] instanceof Function))
req[k] = function(){
var responseState = {
responseText:req.responseText,
readyState:req.readyState,
responseHeaders:(req.readyState == 4 ? req.getAllResponseHeaders() :''),
status:(req.readyState == 4 ? req.status : 0),
statusText:(req.readyState == 4 ? req.statusText : '') };
setTimeout(function(){obj[k](responseState);}, 0);
};
});
if(obj.overrideMimeType) req.overrideMimeType(obj.overrideMimeType);
setTimeout(function(){
if(typeof obj.data == 'string') req.send(obj.data);
else req.send(null);
}, 500);
}

>>187
一番最後の setTimeoutの500 が 環境依存になるので, ここを上手い具合に逃げられないか検討を要すると思う。
0189名無しさん@お腹いっぱい。2007/11/19(月) 03:01:20ID:glVowEf70
>>149
keyconfig使わないのでよく分からないが, 以下のようなコードを書いたらいいのではと思う。

すべて開く readLater.allOpen();

すべて削除 readLater.clear(true);readLater.saveForWindow();

リストから一つ開く
if(document.getElementById("readLater-popup")..childNodes.length > readLater.MENUINDEX ) )
readLater.openURL(document.getElementById("readLater-popup").lastChild);

(リンクにフォーカスある時に)リストに登録
var linkNode = null;
var target = document.commandDispatcher.focusedElement;
while (target) {
if (target instanceof HTMLAnchorElement ||
target instanceof HTMLAreaElement ||
target instanceof HTMLLinkElement) { if (target.hasAttribute("href")) linkNode = target; }
target = target.parentNode;
}
if(linkNode){
var aURL = linkNode.href;
var aTitle = gatherTextUnder( linkNode );
}else{
var aURL = readLater._getFocusedWindow().content.document.URL;
var aTitle = readLater._getFocusedWindow().content.document.title;
}
readLater.addMenu(aURL,aTitle);
readLater.saveForWindow();
01901892007/11/19(月) 03:06:56ID:glVowEf70
× ..
○ .
0191名無しさん@お腹いっぱい。2007/11/19(月) 07:08:16ID:07waf0o40
>>188
Greasemonkey使用時と同じ動作になりました。ありがとうございました。

あとここにいる人たちはコンテキストメニューの順番とかどう弄ってるのかな?
手書き?アリスさんのところにMenu Editor用UserChrome.jsスクリプトがあったから
併用できるのかと思ったんだけど、うまく行かない。
0192名無しさん@お腹いっぱい。2007/11/19(月) 10:15:26ID:glVowEf70
>>191
Menu Editorに類するものは使っていません。
スクリプトのものは, スクリプトを修正して, 拡張のものはそのまま使っている。
不要な項目はCSSで非表示にしている。

Menu Editorやそれに類するものは, menuitemを一端削除してから,再度作り直している(副作用で
セパレータのIdも変わってしまっている)ので, menuitem等にダイナミックにイベントを定義しているものはスクリプト
だけでなく拡張機能およびFxの本来のもの(もしあれば)も動かなくなる。この仕様はBug 286619で挙げられたが,
たぶんチェックインない。

対処方法は ダイナミックにイベントリスナを定義するのでなく on〜の属性を使用するようにすればいい。

上記対処をした上で, Menu Editor用UserChrome.jsスクリプト とは逆に,
すべてのメニュー構築が終わった段階(スクリプトなどで通知して)でMenu Editorやそれに類するものが動くように拡張機能の中身
を変更すればいい。 そうすれば, スクリプトで追加したメニュー項目も並び替えることができる

と言うことです。
0193名無しさん@お腹いっぱい。2007/11/19(月) 12:33:14ID:fnDmXF/u0
>>182
>>185
無事動作するようになりました!
あるがとうございます。
01941802007/11/19(月) 17:17:57ID:J03Hzrn+0
>>180おねがいします。
0195名無しさん@お腹いっぱい。2007/11/19(月) 19:51:21ID:xRGjdJXL0
Alice氏のopenTabsWhere_whichTabSelectWhenCloseTab.uc.jsを使っています。
ttp://space.geocities.yahoo.co.jp/gl/alice0775/view/20071110/1194630844

zip等のリンクにtarget="_blank"があった場合、空白のタブが開いても
自動で閉じてたんですが、これが効かなくなりました。
今までのように自動で閉じるようにするにはどうすればいいでしょうか?
0196名無しさん@お腹いっぱい。2007/11/19(月) 20:50:46ID:glVowEf70
>>195
私の環境では自動で閉じます。
あなたの環境が不明なので回答不能です。
0197名無しさん@お腹いっぱい。2007/11/19(月) 21:24:33ID:gJEOso960
>>195
あ、それうちもなるなる。たまに空っぽのタブができてて、何だろうって思ってたら
ダウンロードした後だった。なんでだろうね(´・ω・)?
01981952007/11/19(月) 21:35:10ID:xRGjdJXL0
>>196
すいません。試した環境は以下の通りです(新規プロファイルを作成)。

拡張
・userChrome.js 0.8
userChrome.js
・ttp://space.geocities.jp/alice0775/STORE/userChrome.js
スクリプト
・openTabsWhere_whichTabSelectWhenCloseTab.uc.js

Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9 - Build ID: 2007102514
0199名無しさん@お腹いっぱい。2007/11/19(月) 21:44:43ID:glVowEf70
>>198
>自動で閉じてたんですが
提示されている拡張とスクリプトでは, ブランクタブが閉じないのは正しい挙動です。
02001952007/11/19(月) 21:54:42ID:xRGjdJXL0
>>199
<a href="./file.zip" target="_blank">file.zip</a>

の様なリンクをクリックした際に表示されるブランクタブが閉じる機能で、
1.5?あたりからついたFirefox標準の機能のことです。
openTabsWhere_whichTabSelectWhenCloseTab.uc.js を外すと自動で閉じてくれるんですが…
0201名無しさん@お腹いっぱい。2007/11/19(月) 22:10:29ID:glVowEf70
>>200
だから, 提示されている拡張とスクリプトでは, ブランクタブが閉じないのは正しい挙動です。

同スクリプトのlTREATEQUALLY を falseにしてやれば 元の機能に戻ります。
0202名無しさん@お腹いっぱい。2007/11/19(月) 23:37:07ID:glVowEf70
>>195 >>197
ファイルダウンロード時/GMインストール時の空白タブを自動に閉じる
ttp://space.geocities.yahoo.co.jp/gl/alice0775/view/20071015/1192374765
これを入れるという手段もあります。
02031952007/11/20(火) 00:28:26ID:bhvNpDK+0
>>201-202
> TIREATEQUALLY を false

ちょっと199のレスを勘違いしてたみたいです。この設定でいい感じになりました。
ありがとうございます。
0204名無しさん@お腹いっぱい。2007/11/20(火) 00:42:09ID:jR9cylFB0
ウィンドウをマージするスクリプトが動かなくなってしまったのですが、
mgkWindowMediatorは何に置き換えればよいのでしょうか。

var enumerator = mgkWindowMediator.getEnumerator("navigator:browser");
var targetWindow = null;
var tabCount = 0;
while (enumerator.hasMoreElements())
{
var cur = enumerator.getNext();
var ctabs = cur.getBrowser().mTabBox._tabs.childNodes.length;
if (ctabs > tabCount && cur != window)
{
targetWindow = cur;
tabCount = ctabs;
}
}
if (targetWindow)
{
tabCount = getBrowser().mTabBox._tabs.childNodes.length;
for (var i = 0; i < tabCount; i++)
{
var b = getBrowser().getBrowserForTab(getBrowser().mTabBox._tabs.childNodes[i]);
targetWindow.getBrowser().addTab(b.currentURI.spec);
}
window.close();
targetWindow.focus();
}
0205名無しさん@お腹いっぱい。2007/11/20(火) 01:58:26ID:kosdGt1b0
>>204
Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator)
と思う。

こっちのを使う手もある。
Mozilla Firefox まとめサイト
mergeWindow2.uc.jsウィンドウをマージする
ttp://firefox.geckodev.org/index.php?userChrome.js
0206名無しさん@お腹いっぱい。2007/11/20(火) 02:48:27ID:jR9cylFB0
>>205
ありがとうございます。

enumerator.hasMoreElements()のとこでダメみたいですね。
教えていただいたmergeWindow2.uc.jsの方を使わせていただこう
と思います。
0207名無しさん@お腹いっぱい。2007/11/20(火) 02:53:49ID:IE0RSdMW0
>>188
これにGM_xmlhttpRequestを変更してから
http://userscripts.org/scripts/show/13026
のLDR subscriber in FLDR.user.jsが動かなかったのですが、
このScriptの
encodeURIComponent()のところを
encodeURI()を使うことによって解決しました。

そこで思ったのですがGM_xmlhttpRequestで送る
urlの仕様は変更なさったのでしょうか。
02081882007/11/20(火) 02:56:40ID:kosdGt1b0
>>207
>>188
req.open(obj.method || 'GET',encodeURI(obj.url),true);

req.open(obj.method || 'GET', obj.url , true);
かな
0209名無しさん@お腹いっぱい。2007/11/20(火) 03:24:43ID:IE0RSdMW0
>>208
動作確認しました。
ありがとうございます。
0210名無しさん@お腹いっぱい。2007/11/20(火) 07:13:34ID:TEeCNQor0
Greasemonkeyの場合、除外したいサイトは@excludeで指定できますが、Stylishのスクリプトでも、除外用の構文ってありますか?
0211名無しさん@お腹いっぱい。2007/11/20(火) 11:12:56ID:kosdGt1b0
>>210
そのような構文はありません。
0212名無しさん@お腹いっぱい。2007/11/20(火) 11:24:11ID:YU0K/yje0
Chrome Edit PlusやEdit Config Filesみたいに
プロファイルのフォルダを開いたり、各css編集できる
スクリプトってありますか?
0213名無しさん@お腹いっぱい。2007/11/20(火) 11:33:49ID:kosdGt1b0
>>212
>>1
0214初スレの802007/11/20(火) 18:13:30ID:PghSJcrM0
>>188
参考にさせていただきます.
このコードを見て初めて原因が判りました.
sendはサーバへの接続確立を待たないみたいですね.
0215名無しさん@お腹いっぱい。2007/11/20(火) 23:11:27ID:dTFzK6oy0
3β入れたんだが、textlink.uc.jsがURL文字列を4回クリックしないと動かない
0216名無しさん@お腹いっぱい。2007/11/21(水) 10:07:50ID:j89CxKHd0
Stylishのステータスバーアイコンクリックすると出てくるメニューをコンテキストメニューに追加するにはどうすればいいですか?
0217名無しさん@お腹いっぱい。2007/11/21(水) 11:08:12ID:eccdy7XG0
>>216
DOMインスペクタでStylishのステータスバーアイコンクリックすると出てくるメニューのid調べて
contentAreaContextMenuに追加すればいいんでない?
0218名無しさん@お腹いっぱい。2007/11/21(水) 12:48:50ID:vc2nmuc50
DragNgoModoki3.uc.jsで、画像を例えばデスクトップにD&Dした場合、ショートカットが保存されてしまうのですが
画像を保存するようにするにはどうすればいいでしょう。
0219名無しさん@お腹いっぱい。2007/11/21(水) 15:17:34ID:SksZKa9B0
>>215
地味に苦しいな
0220名無しさん@お腹いっぱい。2007/11/21(水) 15:19:13ID:2DvEr1E50
>>218
デフォルトで実体をドロップするようにしておいた。
0221名無しさん@お腹いっぱい。2007/11/21(水) 16:07:41ID:phrViVK80
Tab Clicking Options の拡張を置き換えたくて、これに代わる
userChrome.js のスクリプトを探しています。

タブ左Wクリックで、そのタブが閉じてくれればよいです。

すみませんが、こんなスクリプトがありましたら教えてください。
0222名無しさん@お腹いっぱい。2007/11/21(水) 16:30:45ID:o2uxjZoD0
昨日の3.0b2ナイトリーから
80氏の"Open Selection.se.js"とGomita氏の"Recently Closed Tabs popup.uc.js"
が正常動作しなくなってしまいました。

Open Selection.se.jsはリンクが開けない
Recently Closed Tabs popup.uc.jsは中クリは利くけど右クリでリストが表示されない

です。
よければ修正箇所を教えてもらえないでしょうか?
0223名無しさん@お腹いっぱい。2007/11/21(水) 16:36:51ID:2DvEr1E50
>>222
bug 404499 ttps://bugzilla.mozilla.org/show_bug.cgi?id=404499
を直していただければ善処いたします。
0224名無しさん@お腹いっぱい。2007/11/21(水) 17:36:40ID:v4jfpR9M0
3.0b1で軽量マウスジェスチャからページ内検索をしようとしたら
gFindBar.isFindBarVisible() ? gFindBar.closeFindBar() : gFindBar.onFindCmd();
が仕様変更で使えないorz
誰か助けて
0225初スレの802007/11/21(水) 17:40:49ID:na7pBzEw0
>>214
間違ってた.sendを実行しないとサーバへの接続をしない.
そもそも当方では何も待たずにいきなりsendしても失敗しないので確認できない.
試しに話に挙がったdel.icio.usにポストしてみてもすんなり成功してしまうので,
GM_modoki.jslのGM_xmlhttpRequestが失敗する方に協力願えると助かります.
GM_xmlhttpRequestを>>166のコードにして,「req.send(obj.data || null);」を以下のどちらかに修正して成功するかどうか.

var timer = setInterval(function{ if(req.readyState == 1){ clearInterval(timer); req.send(obj.data || null); } },10);

var timer = setInterval(function{ if(req.channel){ clearInterval(timer); req.send(obj.data || null); } },10);

>>222
特に説明してなかったのでアレだけど,サンプルはfx2専用とでも思ってください.
なかなか確認や修正まで手が回りません.
0226名無しさん@お腹いっぱい。2007/11/21(水) 18:15:46ID:o2uxjZoD0
>>225,223
バグが関係してるようなので様子を見ることにします。
すいませんでした。
0227名無しさん@お腹いっぱい。2007/11/21(水) 18:16:45ID:WmaX14u00
質問 1
Greased Lightboxを使いたいんですけど
user_pref("capability.policy.default.Window.navigator", "noAccess");
て書いてると
エラー: userContent.js / Greased_Lightbox_v0.15.user.js
Permission denied to get property Window.navigator
と出て動きません。両立する方法、ありませんか?

質問 2
livedoor Reader 関連のスクリプトを動かしたくて前スレみて
書換えてみた・・・
メタデータに 「@privilege false」を追加する の意味がわかりません
どこに、書き足せばいいのでしょうか?


0228名無しさん@お腹いっぱい。2007/11/21(水) 18:46:23ID:2DvEr1E50
>>227
navigator オブジェクト を使用しないようユーザスクリプトを改造する。

userContent.js.readme.txtにメタデータの説明がある。ユーザスクリプトに記述する。
0229名無しさん@お腹いっぱい。2007/11/21(水) 19:24:17ID:2DvEr1E50
>>224
gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
で動作するかと思います。
0230名無しさん@お腹いっぱい。2007/11/21(水) 19:59:21ID:WmaX14u00
>>228
あははは。全然,無理でした。あきらめます
ありがとうございました
0231名無しさん@お腹いっぱい。2007/11/21(水) 20:04:20ID:v4jfpR9M0
>>229
それで動いた
ありがとう
0232名無しさん@お腹いっぱい。2007/11/21(水) 20:13:06ID:2DvEr1E50
>>225
タイプミス× setInterval(function{ if... ○ setInterval(function(){ if... ですね。
用法試しましたが, どちらでも問題なくポストできました。。
当方では以下のようにsetTimeout二重使いで open→コールバック定義→sendの順で呼ぶようにしてみました。
function GM_xmlhttpRequest(obj){
if(typeof(obj) != 'object' || (typeof(obj.url) != 'string' && !(obj.url instanceof String))) return;

var req = new XMLHttpRequest();
req.open(obj.method || 'GET',obj.url,true);
if(typeof(obj.headers) == 'object') for(var i in obj.headers) req.setRequestHeader(i,obj.headers[i]);
setTimeout(function(){
['onload','onerror','onreadystatechange'].forEach(function(k){
if(obj[k] && (typeof(obj[k]) == 'function' || obj[k] instanceof Function)) req[k] = function(){
obj[k]({
status : (req.readyState == 4) ? req.status : 0,
statusText : (req.readyState == 4) ? req.statusText : '',
responseHeaders : (req.readyState == 4) ? req.getAllResponseHeaders() : '',
responseText : req.responseText,
readyState : req.readyState });
};
});
if(obj.overrideMimeType) req.overrideMimeType(obj.overrideMimeType);

setTimeout(function(){
if(typeof obj.data == 'string') req.send(obj.data);
else req.send(null);
}, 0);
}, 0);
}
0233名無しさん@お腹いっぱい。2007/11/21(水) 21:23:10ID:RrFeGndT0
>>220
ありがとうございます! これでDrag de Goから乗り換えられます
0234名無しさん@お腹いっぱい。2007/11/22(木) 00:10:34ID:AGZegiZi0
ページ内のリンクのうち、URLに特定の文字列を含むリンクを
自動で新規タブに開くようなことはスクリプトで可能でしょうか?
0235初スレの802007/11/22(木) 17:21:34ID:AR0Vp6k80
>>232
ありがとうございます.
どうやらsetTimeoutなり何なりでタイミングをずらせば良いだけっぽいですね.
一応,readyStateの値を信用してみます.
0236名無しさん@お腹いっぱい。2007/11/22(木) 21:43:35ID:Z7cdNgjj0
>>234
可能
0237名無しさん@お腹いっぱい。2007/11/22(木) 22:17:11ID:kE+aNBfi0
http://www.xuldev.org/blog/?p=113
のVertical Toolbarを入れていると
http://to.tumblr.com/post/14878939
のTomblooが動きません。どこを直したらいいでしょうか。

Firefox2.0.0.9で新規プロファイルで試したところ
Tombloo
userChrome.js
Alice氏のローダー
までは動きましたがVertical Toolbarを入れると動きませんでした。
また、Vertical Toolbar以外のScript(userContent.jsやuserMenu.jsなど)
を入れた状態ではTomblooは動いたのでVertical Toolbarが原因と判断しました。
02382372007/11/23(金) 00:40:33ID:wl7QmHat0
Scriptの内の定義名やその他の関数のかたちを変えたりしても
うまくいかなかったので、もしやと思いVertical ToolbarのCSS情報を記述してある
    var style = <![CDATA[
        toolbar[orient="vertical"] > toolbarspacer { height: 15px; }
        toolbar[orient="vertical"] > toolbarseparator {
            margin: 0.2em 2px;
            border-bottom: 1px solid ThreeDHighlight;
            border-top: 1px solid ThreeDShadow;
            height: 2px;
            border-left: none;
            border-right: none;
        }
    ]]>.toString();
    var sspi = document.createProcessingInstruction(
        'xml-stylesheet',
        'type="text/css" href="data:text/css,' + encodeURI(style) + '"'
    );
    document.insertBefore(sspi, document.documentElement);
    sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
    };
の部分を削除してuserChrome.css内に同等の情報を
記述することによってなんとかTomblooを動かすことができました。
しかしいまだに原因がよくわからないのですが、なぜ動かなかったんでしょうか。
後学のためにわかる方教えていただけないでしょうか。
0239名無しさん@お腹いっぱい。2007/11/23(金) 02:06:12ID:M8KWvshk0
BHNewTabのtrunk版まだ〜?
0240名無しさん@お腹いっぱい。2007/11/23(金) 02:14:10ID:QPjK0CFS0
>>237
tombloo.xpiの中のbrowser.xulの168行目
document.firstChild.appendChild(env);

document.documentElement.appendChild(env);
にすれば直るかもしんない
どっちかというと原因は拡張のほうにある
0241名無しさん@お腹いっぱい。2007/11/23(金) 02:21:44ID:wl7QmHat0
>>240
ありがとうございます。
そちらのほうが原因だったんですね。

後、思ったのですがuserChrome.js内でStyleを定義するのと
userChrome.cssで定義するのではどちらのほうが軽量化されるのでしょうか。
なんとなくCSSに書いたほうが高速な気がするのは気のせいでしょうか。
Scriptが更新されるといちいち改定しなくてはいけないのは難点ですが。
0242名無しさん@お腹いっぱい。2007/11/23(金) 02:23:35ID:mKMJxEwO0
>>239
>>162
0243名無しさん@お腹いっぱい。2007/11/23(金) 02:30:23ID:NNnzHf3V0
>>241
userChrome.cssで定義した方がいいに決まっている。
けど、それだとJSとCSSの2ファイル編集しないといけないので面倒だろ?
0244名無しさん@お腹いっぱい。2007/11/23(金) 08:56:17ID:wxyKtPiW0
userChrome.js のスクリプトを自分で勉強して書いてみたいのですが、
参考になるサイトやドキュメントなどありませんか?
0245名無しさん@お腹いっぱい。2007/11/23(金) 14:22:11ID:8fPa9zRX0
>>244
http://developer.mozilla.org/ja/docs/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
0246名無しさん@お腹いっぱい。2007/11/23(金) 14:34:49ID:wl7QmHat0
>>243
そうですか。
Vertical ToolbarのようなScriptはもうこれで完成してしまっているような
気がするので、userChrome.cssに記述することにします。
ありがとうございました。
0247名無しさん@お腹いっぱい。2007/11/23(金) 18:42:12ID:Zu5kNE2h0
userChrome.jsって、エクステンションで同じ機能を
インストールするのと比べて何が嬉しいの?
煽りでも荒しでもなく、本気でよくわかってないので教えてー。
0248名無しさん@お腹いっぱい。2007/11/23(金) 18:51:43ID:BRsmlFfu0
>>247
俺はなるべく動作の軽いスクリプトにしてるけど
管理が面倒なのや多機能なのはアドオンにしてるよ
0249名無しさん@お腹いっぱい。2007/11/23(金) 19:02:40ID:LlcZ50/R0
>>247
必要のない機能を削って遅くならないようにするため
実際には変化はなかなか分からないけど
0250名無しさん@お腹いっぱい。2007/11/23(金) 19:03:27ID:Zu5kNE2h0
>>248
Firefoxが重くて仕方ない人とか、
ちょろっと痒いトコロを便利にしたい人向けってこと?
なんだか管理とかセキュリティとか考えるとデメリットが大きすぎる気がして。
導入とバックアップを直接フォルダで〜っていうのも、なんだかなって感じ。
Greasemonkeyくらい手軽なら使ってみたいんだけどね。
0251名無しさん@お腹いっぱい。2007/11/23(金) 19:05:54ID:BRsmlFfu0
>>250
Greasemonkeyは描写遅くなるから俺はダメだな
0252名無しさん@お腹いっぱい。2007/11/23(金) 19:06:43ID:Zu5kNE2h0
>>249
やっぱり軽量化が主になるんだね。
シンプルになるのは魅力なんだけど、管理が面倒。
Stylishみたいな管理エクステンションとかがあればいいのに…。
■ このスレッドは過去ログ倉庫に格納されています