System House ACT Weblog

RSS 1.0 RSS 2.0 ATOM 1.0

FLO:Q と Nucleus Lightbox

最終更新日時 : 2008-01-20 20:03:13
別サイトでも Nucleus でブログサイトを運営していますが、ソニーのブログツール FLO:Q を貼り付けると、Lightbox が効かなくなりました。

といっても、FLO:Q のせいだと判明するまでの道のりは遠かったのです。

JavaScript のデバッグモードを有効にして動かしてみると、スクリプトエラーになっています??
  setTop: function(element,t) {
element = $(element);
element.style.top = t +"px"; <-- この行です
},

そこで、setTop を呼び出しているところを見ると、
  var arrayPageSize = getPageSize();
var arrayPageScroll = getPageScroll();
var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);

Element.setTop('lightbox', lightboxTop);
Element.show('lightbox');

となっています。

まずは、Element.setTop('lightbox', lightboxTop)lightboxTop100 に変えて動かすと、エラーはでません。これは予想どおりです。

次に、arrayPageScroll[1] に変えてみました。これもエラーにはなりません。

さらに、arrayPageSize[3] に変えてみると、見事(笑)にエラーになります。
ということで、getPageSize(); を調べてみることにしました。戻り値の箇所は、

arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
return arrayPageSize;
}

になっています。

そこで、arrayPageSize = new Array(100,100,100,100); としてみました。
あれ、エラーになる??

ここで、困りました。

しばらく悩んだのち、しかたないので最終兵器 Visual Studio の出番です。
エラーの起こった箇所で、実行ポイントを変更して、とりあえず、呼び出し元にステップ実行で戻します。

次に、getPageSize を呼んでいる箇所に、さらに実行ポイントを変更し、ステップ実行してみます。

するとどうでしょう!
Nucleusプラグイン NP_LightboxEX の、getPageSize ではなく、FLO:QgetPageSize が呼ばれているではありませんか。それで、そちらは配列の要素数は2つなんですね。

JavaScript の NameSpace に乗せ換えるのも手間なので、arrayPageSize[3] の 3 を 1 に変更してお茶を濁すことにしました。

※しかし、ソニー!
※ブログツールとか言うのだったら、既存のものに影響を与えないように、ツール側で NameSpace 内に閉じるべきでしょうが!(怒!)
2008-01-19 22:28:07 投稿者:管理者コメントを追加する

この記事への参照記事

参照記事はありません。

この記事へのコメント

コメントはありません。

この記事へのコメントを追加する

 お手数ですが、チェックしてください → 

この記事へのトラックバック

【なんでも感想・なんでもメモ】
 昨晩触れた「ポップアップ(ライトボックス)で拡大画像を表示」機能についてだけど、調べたらこんなブログを見つけた。 System House ACT Weblo
(2009-10-09 22:10)

この記事へのトラックバックを追加する

トラックバックURLは ここを右クリック し、
  • IE … ショートカットのコピー
  • Firefox … リンクの URL をコピー
でコピーできます。
また、こちらのフォーム からトラックバックを送信することもできます。
なお、この記事への言及リンクのないトラックバックは一旦保留させていただいております。ご了承ください。
(トラックバック送信エラーになった場合でも、保留が解除されることによりトラックバックは受け付けられます。)
Webサービス by Yahoo! JAPAN
サンワダイレクト
a System House to build an Accounting system by the Computer Technology