- PR -

[ASP 3.5] modalPopupExtension で、縦が長いと背景が半透明にならない

1
投稿者投稿内容
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2008-08-20 15:09
 こんにちは。
 ASP.NET + modalPopupExtension で変な事象に悩まされています。

 背景がグレーアウトするような CSS を使用(つまりはデフォルト)しています。
 ほとんどの場合は問題がないのですが、表示するデータ量の関係で縦が伸びすぎると背景色のグレーアウトの半透明がなされずグレーで Fill されてしまいます。(背景が見えない)

 今のところ、Sleipnir の 画面スナップ Plug-in で全画面キャプチャさせて、半透明されなくなる境界を色々と調べたところ、縦2000ドットあたりを超えると半透明されなくなることが掴めました。
 1ドット単位での精査はしていませんので、切りの良い2048ドットかもしれませんが。

 modalPopupExtension をお使いの方で、同じような事象に遭遇されておられる方はいらっしゃいますか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2008-08-21 16:23
ModalPopupBehavior.js をみると、半透明の画像を描画しているところでこんな記述が有ります。
コード:
var clientBounds = $common.getClientBounds();
var clientWidth = clientBounds.width;
var clientHeight = clientBounds.height;
this._backgroundElement.style.width = Math.max(Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), clientWidth)+'px';
this._backgroundElement.style.height = Math.max(Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), clientHeight)+'px';


どうもブラウザーを判断して、画像の高さを決めているようですね。
お使いのブラウザーに AJAX Controltoolkit が対応していないのか、バグなのかはちょっと解りませんが、このあたりのスクリプトをいじるか、javascript で外から書き換えてみたらどうなりますか?
_________________
かるあ のメモスニペット
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2008-08-21 17:46
 大変に有益な情報、ありがとうございます。
 js の中までは追っかけていませんでした。

 開発環境に入ってる IE7 でしか確認していないのですが、ブラウザの返す scrollHeight が 2048 の辺で打ち止めになっている気がしなくもなく・・・
 何はともあれ、糸口が見えてきました。

 また結果は報告します。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-08-22 06:19
ASP.NET 3.5 SP1用のAjax Control Toolkitがリリース
されたようです。

バグも修正されているようですから入れ替えてみたらどうでしょうか。

http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx?ReleaseId=16488

SP1で追加された

MultiHandleSlider 

いいですね。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2008-08-22 08:54
 おはようございます。
 早速いれてみました。

 結果・・・・・変わらず。

 その縦の長い画面で、Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) を表示させたら 2300 とか出ましたので、ブラウザの返す Height が 2048 の辺で頭打ちになってる、という風ではないようです。


 このまま JavaScript 解析に移行すべきか、素直に modalPopup を止めてオーソドックスに行くか迷えるところ・・・(納期に余裕もないしぃ・・)
 また報告を書きます。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2008-08-22 14:54
いきなりJSの解析に移らないでも、FireBug や DebugBar といったツールで ModalPopup 時のDOMを調査して、画像のスタイルを確認したりはできるんじゃないですか?

上のツールだったらボタンクリック時のイベントを書き換えるのも簡単なんで、debugger ステートメントを入れてデバックするっていう手もあります。
_________________
かるあ のメモスニペット
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2008-08-22 15:08
 返信ありがとうございます。
 軽く js 見渡した限りでは、Height に依存する風じゃないですネ

 今は開発環境の中でしか動作させることができておらず(別にWebサーバーを立ててない)ので特定には至っていないのですが、Sleipnir を Gecko エンジンに切り替えて表示させると問題が起きない(縦がメチャクチャ長くては正しく半透明される)ので、何となく IE7 のバグというか制限な気がしつつあります。

 ただいま、IE6 や Firefox でも試そうと環境整備中です。。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-08-23 08:10
引用:

ただいま、IE6 や Firefox でも試そうと環境整備中です。。



IETesterを利用するとIE8 Beta 1, IE7, IE6, IE5.5の動作を
1台のPCからテストできます。

http://www.my-debugbar.com/wiki/IETester/HomePage

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
1

スキルアップ/キャリアアップ(JOB@IT)