忍者ブログ

Home > JavaScript

JavaScript Archive

[PR]

  • 2024-04-27 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

  • Comments (Close):
  • TrackBack (Close):

FeedBlog Scriptに惚れた

MOONGIFT: ? JavaScript + XMLで動作するブログシステム「FeedBlog Script」:オープンソースを毎日紹介
で知ったFeedBlog。

※ 配布自体は公式サイトにてだいぶ前からされていたようですが、
  今年に入って、SourceForge上でオープンソース化(MITライセンスGPLv3に変更)したみたいです。

その名の通り、Ajax(Atom + JavaScript)なブログツールです。
(XMLで作った記事ファイルを、jQuery&Extというモダンなライブラリで表示)

基本的にはXMLで記事を記述してFTPアップロードする方式です。(rNote風?)
ただ、PHP製の編集スクリプトや、C#製のソフトも別に配布されています。
至れり尽くせりですね!

一目見た瞬間惚れちゃったので、早速使ってみました。
で、どうせなら何か応援できないかということで、見た目を改造してみました。

そうです、CSSもモダンなフレームワークでということで、Vicuna化することにしたのです!!

結果がこれです。

FeedBlog × Vicuna(Normal)
FeedBlog × Vicuna(Light)
(Lightバージョンは、ExtのPanelを使わず、innerHTMLでやってるので軽いです。
見た目はNormalの方がおしゃれです。)

※ 頻繁にアップデートされてるので、最新版に追いつけていない可能性があります。
  このエントリの公開時点では、Normalは1.5.1.0、Lightは1.5.0.0をベースにしています。

珍しくカスタマイズ成功でいい感じになってます…。
皆さんも是非使ってみてください!

トラックバックやコメントはないですが、
メモや日記等の用途には十分でしょう。

さて、僕は何に使おうかなー。

オマケ:JavaScriptのエラーとか

Firefoxでたまに、

Permission denied to get property HTMLDivElement.nodeType

なんていうエラーが出ます。
どうやらオートコンプリートがらみのエラーらしいのですが、
autocomplete="off"にしても解決しなかったのでとりあえず放置です。
※ 特に動作に影響はありません。

あと、なんかうちのIEでは動かなかったので、 一応動くように応急処置しています。
[2009/01/21 22:13]
 修正されてました。HTMLソースが不正とかいうエラーも出なくなってます。
 はやい!!既に僕のサンプルは最新版と整合性とれなくなっちゃいました。。。

何かXMLのgetElementsByTagNameでエラーになってました。

if(obj.getElementsByTagName) { // ←ここでエラー。

// 以下検証
alert(obj.getElementsByTagName); //エラー
alert(obj['getElementsByTagName']); //エラー
alert(!!obj.getElementsByTagName); //エラー
alert(obj && obj.getElementsByTagName); //エラー

alert('getElementsByTagName' in obj); // true
alert(typeof obj.getElementsByTagName != 'undefined'); // true(とりあえずこれで代替)

上記のように、普通にメソッドの有無を確認しようとするとエラーになります。

引数の数が一致していません。または不正なプロパティを指定しています。

だ、そうです。

MIME Typeをtext/xmlにすれば直るかなぁ、と思いましたが検討違いだったようで。
最後のtypeof&undefinedにすれば、動くようにはなりました。

※ ただエラーは残っています。。。

この操作に対して無効なHTMLのソースです

ってやつ。
エラー発生個所がライブラリの中にいっちゃったので、一旦追うのを止めてます^^;
(IEだとエラー追うの大変ですよねー)

オマケは以上です。
ソースは後日改めてちゃんと見ます!
セマフォとかやってて面白そうだったので。

PR

JavaScriptのinstanceofをisArrayに使っていいの?

以前JavaScriptで配列かどうか調べるなんて記事をろくに調べずに書いたんですが・・・(手元で実行できるか試しただけだった)

Ajaxian ? isArray: Why is it so bloody hard to get right? のような記事が定期的に話題になるのでふと気になった。
(そういえば、JavaScript: The Good Partsでもこのトピックを扱っていた)

「もしかして、instanceofって非推奨な演算子なのか?」と。

以下調べた結果です。

JavaScriptのinstanceofは遠慮なしに使っていいものか? - 檜山正幸のキマイラ飼育記
同じテーマの記事を発見。

instanceof が使えるのは「JavaScript 1.4 から」らしいですが、
version ≧ 1.4 は普通に仮定していいことなのだろうか?

また、コメント欄(Kuwataさん)より、

現状で JavaScript に対応しているアプリケーションは
大抵 JavaScript 1.5 というか ECMA-262 第三版に対応しているので、 
version ≧ 1.4 だと仮定しても問題ない

とのこと。

JavaScript 第5版には普通に書いてあったし、
たぶん大丈夫そうだけど…もうちょっと調べてみる。

instanceofはJavaScript1.4以降?(Firefox編)

まず、「instanceofが1.4から」のソースを探してみる。

お、あった→Determining Instance Relationships - MDC

で、さらにJavaScript - Wikipedia(2009年1月12日 22:47:33)によるとFirefox1.0でJavaScript1.5らしいので、
Mozilla系は使えると考えてよさそう。

IEのJavaScriptバージョンはよくわからん

お次はIEです。

Version Information (Windows Scripting - JScript)なんていう今日の日のためにあるようなページを発見。(via What's new in IE6
これによるとinstanceof OperatorはJScript5.0でサポートされているとのこと。

さらに、JScript5.0はMicrosoft Internet Explorer 5.0で実装されてるということで、
こちらも問題なしですね!

結論

どうやら使ってもよさそうです。

え?他のブラウザ?
…また今度で^^;

っていうかこれ調べてて気づいたけど、

無名関数を作るときにおなじみのvar f = function()...もJavaScript1.5以降だし、
for...inもJScript5.0以降なんだねぇ。

instanceofが使えないなら今のモダンJavaScript全滅なんじゃ。。。

その他参考

主に1.4か?のソース探しの時に見たサイトです。
なぜかなかなかMDCの該当個所に辿り着けなかった。。。
anything from here jQueryインクルード時の挙動を追跡する ──jQuery解読(4)
JavaScript入門(記述法)

※ 投稿時間を20分ごまかして13日分の記事を稼ぐという姑息な…

追記(2009/01/13 07:05)

あれ?トラックバックが送れてない?
一応再送信しときます。
多重送信になってたらすいませんm(_ _)m

TB送信、RSS送信が多くある場合に起こるエラーとなっております。
これらが一定期間に一定数を超えてしまった場合、
スパムを行っているとプログラム側で判断し、
以降の送信が出来なくなります。
その制限は、最後のエラーログから24時間で解除されます。

これに引っかかったっぽいな。(ヘルプ - NINJA TOOLS
相手がいなかったりでping送信エラーが何件か出ちゃってたせいかな?
それとも去年のTODOリスト整理で連投してたからか?

cho45さんのJavaScript短縮方法まとめがすごい!

JS のコードを短かくする Tips - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech

これは参考になるなぁ。

前に僕もブックマークレットを短くする方法 - Born Neetなんて記事を書いたけど、
全然思いつかなかったことばっかりだ…。

次に長いbookmarkletを書くときは使わせてもらおう。

一応僕の記事も入門編?として残しておきます、恥ずかしながら。。。

indexes.js × Vicuna

…なんちゃって。(本家の紹介の仕方をパクるという暴挙)

というわけで、indexesのサンプルアプリ作りました。

Foo Book ― Sample Application of indexes.js

indexes.jsは、こういう本的コンテンツの目次やナビを、
ディレクトリ構造からjsで簡単に作れたらいいなぁという思いから
できたライブラリなのでした。(っていうかただの副産物)

ホントは本の中身までちゃんと作りたかったんですが、
時間(とそれ以上に知識)が足りないので、この状態での公開となります。

Apacheでindex表示しているため、
JavaScriptなしの人もこっちから普通にコンテンツを見れるので、
ややアクセシブルなんじゃないかと思ってます。

まぁライブラリのサンプルとしては十分でしょう。。。

再利用できるようにjsを作ったのは今回が初めてでしたが、
細かい処理を無視してアプリを作ることができ、
ライブラリ化のよさを改めて感じました。

再利用って大切ですね!!(何を今さら…)
(Vicunaのおかげで見た目に時間を割かなくてもいいというのも大いにあるんですけどね^^)

オープンソースプログラマデビュー!?indexes.jsを公開しました

いつも通り大げさなタイトルです^^

Google Codeで、JavaScriptのライブラリみたいなものを公開してみました。
今までもプログラムは「ご自由に」でやってきましたが、今回はライセンスとかもちゃんと用意してみました。

はいそうです。自己満足です。

[配布サイト]

indexes.js

デモ兼テストサイトはこちら
(日本語がうまくいかなかったので、ライブラリに頼りました;やっぱファイル名はエンコードしないとダメですね…。
まぁXreaの自動挿入広告がなければ、.htaccessに「IndexOptions Charset=UTF-8」でいけるようですが;)

[追記]
直したつもりでしたが、やっぱり日本語ファイル名は駄目なようですm(_ _)m
(ローカルサーバでは動いてるので、ファイル名が自動エンコード?されるCharsetが原因と思われます)


[2008/01/04 00:00 追記]
encodeURI()の代わりにEscapeSJIS()してPathを渡すようにしたら動きました。
サーバの文字コードをUTF-8にするの断念したんだから、jsのencodeじゃダメにきまってた(>_<)

[説明]

英語がひどいですね;
…それはともかくライブラリの説明を。

機能は単純。JavaScriptで指定ディレクトリのファイルリストを取得するというものです。
脆弱だなんだと悪名高きApacheのmod_autoindexを利用しています。
(なので、一応No Serverside Scriptsなわけです。)

jQuery File Treeがサーバサイドスクリプトを使ってやってたので、
ただ無しでやってみたかったというだけです。

というわけで真面目に使う場合は、jQuery File Treeをどうぞ。
コードもまだまだ直しどころ満載なので、お遊びにはちょうどいいかと思います。

以上、僕の初OSSをよろしくお願いしますm(_ _)m

[参考]

[Subversion] Google Code でホスティング+TortoiseSVN の使い方 Kawa.netブログ(川崎有亮)/ウェブリブログ
Google Code Project Hosting で Web サイト構築 - WebOS Goodies

ApacheのIndexesの表記方法(文字コード)を変えるには - SoSaiSo
UTF-8にすれば動く…はずだったんだけど、自動挿入広告の罠が。
Coreserverに変えようかなぁ…。
[追記] とかいう問題じゃなさそうです。
[2009/01/04 00:00 追記] とかいう問題でした。
サーバ側がShift-JISのままなら、テストコードもそうすればいいだけでした。。。

[オマケ]

Google Analyticsも簡単に使えた。
「http://code.google.com/p/indexes/」のプロファイルを追加。
表示されるウェブ プロパティ ID(UA-XXXXXXX-X)を、ProjectサイトのAdministrator欄から入力するだけでOK。
いやぁすばらしいですね!

…ただこれはどうなんだ?↓

Google code username - Hosting at Google Code | Google グループ
Gmailで登録しとかないと、usernameがメールアドレスを短縮したものになっちゃう。んな馬鹿な!
(gmailなら@以前がusernameとしてGoogle Code上で表示される。ん?ってことは結局メールアドレスはバレるのか;)

Home > JavaScript

Search
Loading
Feeds
Links
スポンサードリンク

Page Top