更新はしません。Firefox1.0PreviewRelease!?まじですか…
久しぶりに見たら見事に人がいないですね。笑い。
Gecko的コンテンツにWikiを設置。現在Delphiコンポをいじっています。OnShowContextMenuを勘で使えるようにしてみました。全然本質的な部分じゃないですね…。次はnsIWebBrowserFindに挑戦したいですが、また講習ですよ。
IDEが強制終了するのはキツイ。だれか助けて〜
意外と解けますね。
XUL/Migemoがそこそこ普及したいまさらながら、辞書に不備があったことが発覚しました。これのせいで「m」、「z」など、一部の語句の検索ができなくなっていました。申し訳ございません。(原因は「{」をきちんと「\{」にしておかなかったため)更新しなければならないファイルはma2.txtとza2.txtとmigemocache.txtです。気になる方はいれなおしてください。面倒くさい方はxulmigemodic.zipを再度ダウンロードして頂いても構いません。
こりゃ本格的に辞書の自動ダウンロード機能とか要りそうだな…
なんか入れ替えたらうごかないとか苦情が出てます。入れ替えはしばらく待ってください。原因不明ですが解決したそうです。お騒がせしました。(実は入れ替えた後最初の起動時こちらでも一回だけ強制終了したので、なにか関係があるのかもしれません。)
XUL/Migemoも0.2.3に上げておいたほうがいいかもしれません。
Debianで動かなくなっていたらしい問題のパッチがPiro氏から届いたのでマージ。
MS-IME98程度の簡単な単語登録機能は需要があるだろうか?
XSLT変換後のページで動作するよう修正。
の要望が出たので作業…してる場合か?まあお膳立てはGrepSidebar開発時に既に整ってるんでそんなに時間はかからなさそうですが。
GroyaがMozillaで使えないのでそれらしいページをでっちあげ た。jsActions 用のスクリプト(リンク先を薄く表示)とあわせてどうぞ。あまり考えてなかったのでXHTML1.0Strictだが、早く HTML4.0Transitionalに直さねば。というかここのページ群全部HTML4.0Strictですね。広告除去申請するか。ちなみに opacity(≠-moz-opacity)に対応してないバージョンでは全く薄くなりませんので、ご注意を。単にopacityのテストとして作った ので。
あの曲を聞いて即座に頭の中に赤い星と赤い怪獣が浮かんできた俺は重症だ。替え歌でも作るか?
数だ!数だ!数だ!厨が増えてもいい、とにかく数が欲しい!
でも棒銀戦法はあんま覚えてないんだなぁ。
辞書の同梱か、ネットインスコ機能を考えているのですが、どうでしょ。クリック一発が一番めんどくさくなくていいですが、それはこちらが面倒(辞書が入ってるのと入っていないのを両方準備しないといけない)なのでネットインスコが落としどころか。
懸案であったIEのブックマークの動作のエミュレートをひとまず盛り込んだ。パッチが某chにうpされていたので適用。どうもありがとうございま す。
眠い。明日は歯医者だ。なんか変な歯が生えてるらしい。
8000票だってさ。
なんかFxスレに親切な人が例の訳を貼ってくれました。大体分かりました。ありがとうございます。
作ってみた。しかしネタがない。暇と新しいPCが降ってきたらタブブラウザでも作ろうかと思うのだが。Donutの完全Gecko化から始めたい
なぁ。でもC++は挫折したからなぁ。Delphiがいいかも。
どんだけ票を獲得するか楽しみだ。
ファイラーというと、mozImageみたいなやつですか?>投票した人
それともSleipnirのFolderViewとやらですか?うちはWin98SEなのでFolderViewがなんなのか良く分からないのですが。
休業です。7/20から夏休み中は一切出てきません。二学期もFx1.0が出るまで出てこないつもりですが、よっぽどのことが起こったら対処しま
す。でもサポートは期待しないで下さい。Uploaderを
作りましたので休み中やる気のある人は改造したのとかおいてってください。
といっても獨逸での話。PC-WELTだっ
て。PC-WORLDって意味かな?だれか解説してください。読めません。どうやらドラッグアンドドロップあたりの突っ込みが書いてあるようだけど。実は
変なバグ入ったままなんです。あれ。デバッグ用だったんですけど。テキストをブラウザの中からD&Dすると…
返ってきた。第一志望はC判定。T工とWはA。KはB。理科が撃沈。数学は良い。国語は漢文が死亡。英語はまずまずか。
Another朝顔日記よ りFindToolbarな るものが追加されたという情報。追随するべきか。ハイライトもできるようなのでコードをGrepSidebarに拝借させていただきたいところ。はやく XUL/MigemoをXPCOMコンポーネント化したいなぁ。
XUL/Migemo0.2.2でとりあえず衝突していたのを解消。 browserのonkeypressを無効にしただけですけどね。
久しぶりにXUL/Migemoの困った問題を発見した。ソース中に「再起\n動」(<br>じゃないよん)というような記述があった りするとヒットしない。改行をまたいだ検索を実装しなかったためである。ま、これで困る事態はまだ体験したことが無いけど、いずれ直そう。って何ヶ月放置 してんだろ。
で、今GrepSidebarのためにXUL/Migemoの見直しと書きなおしを始めたのだけれど、よくこんなぐちゃぐちゃなものを公開したなぁ と。
function range2Text(aRange){
var doc=aRange.startContainer.ownerDocument;
var scrs=doc.getElementsByTagName("script");
var trash=doc.createRange();
var noscrs=doc.getElementsByTagName("noscript");
//getPrefValueはXUL/Migemo内部の関数です
if(getPrefValue("javascript.enabled", "bool", "true")=="true"){
for(var i=0;i<noscrs.length;i++){
trash.selectNode(noscrs[i]);
trash.deleteContents();
}
}
var str=new String();
var tmp = doc.createRange();
tmp.setStart(aRange.startContainer,aRange.startOffset);
var tmp2 = doc.createRange();
var st=aRange.startContainer;
var en=aRange.endContainer;
for(var i=0;i<scrs.length;i++){
if(scrs[i].parentNode.tagName.toUpperCase()=="HEAD"){continue;}
tmp2.selectNode(scrs[i]);
if(aRange.compareBoundaryPoints(0,tmp2)==-1&&
tmp2.compareBoundaryPoints(2,aRange)==-1){
tmp.setEndBefore(scrs[i]);
str+=tmp.toString();
tmp.selectNode(scrs[i]);
tmp.collapse(false);
//tmp.setStartAfter(scrs[i]);なぜかエラーが出る
}
}
tmp.setEnd(aRange.endContainer,aRange.endOffset);
str+=tmp.toString();
return str;
}
これでXUL/Migemoの誕生時から抱えていた問題の一つが9割方解消したと思う。さて、次は改行問題だ。あー、でも直さないうちに夏休みに なっちゃうかも。あんまり問題無いし。
GrepSidebarの次のバージョンの公開に合わせ、XUL/Migemoの機能を外部から利用できるようにします。
XUL/Migemoは逆戻り問題の修正と外部から正規表現をgetできるようにした。GrepSidebarは正規表現検索の実装と XUL/Migemoとの連携の追加。
両方ともupdateしてくださいね。あと、GrepSidebarでは^とか$の入った正規表現は入力しないで下さい。改行関連は鬼門です。
簡単です。XUL/Migemoはブラウザの画面に寄生してますので、window.xulMigemoCore.getRegExp(word)と
やれば正規表現オブジェクトが返ってきます。文字列でないことに注意。ソースを覗いた方はなにやらregExpFindとか見つけたかもしれませんが、バ
グありなので使わないで下さい。(xulMigemoCoreと銘打っておきながら、実はXUL/Migemoではまったく使っていません。完全に外部向
けです)
XREAが全国的に鯖落ち。s31が復旧したのは最後だった。まあいいや。
いや、あれは流れ作業だったんで配列を使う方法を思いつかなかっただけです。深く考えたことも無かった…。
ところでベンチマークというとJavaScript 重箱の隅が詳しいですが、いかんせんJScriptなんでSpiderMonkeyでもいつかやってみたいと思います。
検索プラグインの仕組みを見ていると、自前でもいけるかもしれないと思いなおすようになった。暇があれば…だけど。(GrepSidebarは XUL/Migemoの流用なんであんなに早く対応できたのです。)
追記:DOMInspectorでbrowser.xulのtextbox#search-barのsearchengineをいじって engine://C%3A%5Cgoogle.srcにしてから検索したところ、見事にCドライブにおいてあるgoogle.srcを読みに行ってくれ ました。ということはbrowser.xulの
<popup id="SearchBarPopup" position="after_start"
datasources="rdf:internetsearch" ref="NC:SearchEngineRoot"
oncommand="return SearchBarPopupCommand(event);"
onpopupshowing="SearchBarPopupShowing(event);">
<menuitem id="__PhoenixFindInPage" class="menuitem-iconic"
label="&findOnSearchBarCmd.label;"/>
<menuseparator/>
<template>
<menuitem type="checkbox"
uri="..." value="..."
src="rdf:http://home.netscape.com/NC-rdf#Icon"
label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</template>
</popup>
とnsSidebar.js(必須ではない)を書きかえれば行けるんじゃないでしょうか。だれかやってみません?
なんかGrepSidebarのほうが反響大きくないですか?苦労の度合いは逆なんですけど…ま、世の中そんなもんか。
テキストを検索したときの表示を改善。
特定の場合の表示を改善。
nsIFindから検索して返ってきたrangeの親がでかい要素だとすごく重くなる問題を修正。Grepらしくなったはず。まだ正規表現検索はな いっすよ。UIに「Migemo」とか出てるんで期待している人もいるかもしれないけど、残念ながらまったく手をつけてません。下手なりにアイコンを書い てみたが、うまくいかないなぁ。
さて、投票所を設置したところさっそくsearchplugin をプロファイルに置けるようにする拡張
が欲しいという要望が上がっ
ています。調べてみたところ、正攻法でやろうとすると厄介だということが判明しました。検索プラグインをインストールする際には、多くの場合はリンクをク
リック>nsISidebarからAddSearchEngineを呼ぶ>nsIInternetSearchServiceという手順を踏んでいるので
すが、このnsIInternetSearchServiceがC++で書かれているんですね。だからXULアプリ作者の領域を越えてしまうんです。こ
りゃBugzilla行きかな。
ですが、要望が「いちいちインストールしなおすのが面倒だ」ということで寄せられているのであれば次善の策はあります。nsISidebarを書き 換えて、プロファイルの中にいったん保存して、それから同じようにインストールするようにするのです。で、次回起動時にプロファイルの中にあるのにインス トールされていないものがあったら、再びインストールする、と。あんまり意味ないかもしれませんが。
GrepSidebarを作っているとXUL/Migemoの悪い点が良く見えてくる。そのうち成果をフィードバックするつもり。
今年の三月あたりにXUL/Migemoを作っていた頃、rangeをtoString()するとscriptの中身まで含まれてしまう問題があっ た。いままで放置していたのだけれど、GrepSidebarを作るに当たり放置しているわけにもいかなくなった。そこそこ早いんじゃないかという方法を 思いついたので記しておく。まだbody全体をtoString()するバージョンだけど。いずれrangeを文字列にするようなものを書こう。
function body2text(){
var scrs = document.getElementsByTagName("script");
var tmp=document.createRange();
var str="";
tmp.setStartBefore(document.body);
for(var i=0;i<scrs.length;i++){
if(scrs[i].parentNode.tagName.toUpperCase()=="HEAD"){continue;}
tmp.setEndBefore(scrs[i]);
str+=tmp.toString();
tmp.selectNode(scrs[i]);
tmp.collapse(false);
//tmp.setStartAfter(scrs[i]);なぜかエラーが出る
}
tmp.setEndAfter(document.body);
str+=tmp.toString();
alert(str);
}
書いてみると実は結構「な〜んだ」というレベルのものである。scriptを飛ばして範囲を確保して、toString()を繰り返すだけ。
投票コーナーを作りました。暇な人はどうぞ。今 後に役立てたいです。
しかし苦労した。まだマークアップがおかしい。
パッチを適用しました。ありがとうございます。遅れてすいません。hotmailはしばらく見てなかったもので…^^;詳しいことは鷹の島をごら んください。
2chではすでに晒しましたが、要望にこたえGrepSidebarなるものを作ってみました。AdobeReaderの検索パネルみたいなもんで す。で、下は先日のアクセスログ抜粋です。
519: 13.10%: 2004年 6月30日 23時56分: /xul/img/grep1.png
206: 2.24%: 2004年 6月30日 23時47分: /xul/grepsidebar.xpi
43: 2.25%: 2004年 6月30日 23時54分: /xul/xulmigemo019.xpi
42: 1.06%: 2004年 6月30日 22時52分: /xul/stedsidebar.xpi
28: 0.39%: 2004年 6月30日 21時06分: /xul/newtabandgo030.xpi
25: 1.31%: 2004年 6月30日 21時05分: /xul/xulmigemo.xpi
19: 0.71%: 2004年 6月30日 23時52分: /xul/crossfire010.xpi
なにこれ…恐るべし2ch。