人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

サーバーに置いてあるtxtファイルをブラウザで表示させて、内容を確認しています。
1行ずつに1レコードという感じなのですが、最新レコードが一番下に来るため、
いちいちブラウザを一番下までスクロールしないとならず、不便です。

ブラウザはFirefoxを使用しているのですが、GreaseMonkeyのJavascriptなどで、
最新レコードを一番上(データの並び順を逆転)にして表示させる方法はないでしょうか。

間にcgiをかまして、表示する方法しかないようでしたら、方法を教えてください。

●質問者: sachipanda
●カテゴリ:インターネット ウェブ制作
✍キーワード:CGI firefox Greasemonkey JavaScript txt
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● kn1967
●23ポイント

ユーザースクリプトを作ってみた。

// ==UserScript==
// @name txtReverse
// @auther kn1967
// @namespace
// @description text Reverse
// @include *
// @exclude
// ==/UserScript==
if (location.href.match(/\.txt$/i)) {
 document.body.firstChild.innerHTML = 
 document.body.firstChild.innerHTML.split(/\r\n|\r|\n/g).reverse().join('\n')
 ;
}

※Firefoxの余計なお世話によって、一行目に

<HTML><BODY><PRE>

というゴミが残る。これの消し方は申し訳ないけれど判らない。

※ファイルサイズの上限に関しては環境依存の部分も大きいので試していない。

※要望どおり逆順にしていますが、クライアントサイトの負担を考えると、

最終行まで一気に移動するようなスクリプトのほうが賢いかもしれない。

※CGIで処理する場合もほぼ同様に数行で出来上がるけれど、

設置の手間がかかるので、今回は割愛してます。

※技術的質問の場合はコメント欄を開けておくと応答が速くなる場合もあるし、

詳しくは知らないけど、こんなのはどう?というような意見が集まる場合もあり、

個人的には開けておくことを推奨。

◎質問者からの返答

ありがとうございます!大変助かります!

並べ変えると確かにデータ量が多いと負荷がかかりますね。

ジャンプするだけの方を使ってみたいと思います。

コメントの件もアドバイスありがとうございます。気をつけるようにします。


2 ● kn1967
●23ポイント ベストアンサー

2回目失礼します。

ページ最下部にジャンプするだけのものも作ってみました。

並べ替えが発生しない分、レスポンスは比較にもなりません。

お望みのものとは異なりますが、お試しを。

// ==UserScript==
// @name jumptobottomline
// @auther kn1967
// @namespace
// @description jump to bottom line
// @include *
// @exclude
// ==/UserScript==
if (location.href.match(/\.txt$/i)) {
 window.scrollBy(0, document.body.offsetHeight);
}
◎質問者からの返答

ありがとうございます!

こちらを使わせていただこうと思います!


3 ● gogg45
●22ポイント

tacコマンドを使えば行単位で並べ替えを行うことが出来ます。

テキスト表示コマンド...

http://cyberam.dip.jp/linux_command/command/text_view/tac.html

CGIで以下のような処理を実装して、ボタンなどでこの処理が実行できるようにし

tac file1.txt > file2.txt

ブラウザからは「file2.txt」のファイルを見るのが、作る手間がかからない一番シンプルな方法だと思います。

◎質問者からの返答

ありがとうございます!一番良いのはCGIの設置ですよね。

今はサーバーまではいじれないので、もうちょっとしたら、

参考にさせていただこうと思います。


4 ● Cherenkov
●22ポイント

Firefoxで動けばいいやというブックマークレット。

javascript:p=document.querySelector("pre");p.textContent=p.textContent.split("\n").reverse().join("\n");
◎質問者からの返答

ありがとうございます!これならGreaseMonkey入れてないFirefoxでもOKですね。

私が使用しているMac Firefox3.5.6だと、並べ替えはされるのですが、

データ毎の改行がなくなってしまうようです。

(全部改行されず、データが表示される)

何か設定が必要なのでしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ