Vous n'êtes pas connecté. Ce forum permet seulement les utilisateurs connectés pour poster. Si vous voulez faire un post sur le forum, s'il vous plaît connecter.
Télécharger
Développer
Compte
Télécharger
Développer
Connexion
Mot de passe oublié ?
Créer un compte
Langue
Aide
Langue
Aide
×
Connexion
Nom du compte
Mot de passe
×
Mot de passe oublié ?
Traduction statut du Français
Catégorie :
Logiciel
Peuple
PersonalForge
Magazine
Wiki
Recherche
OSDN
>
Trouver un logiciel
>
piCal
>
Forums
>
Discussion-Ouverte
>
IE9での予定編集のときの「終了日による指定」のjscalendarの表示位置
piCal
Description
Résumé du projet
Dashboard - Développeur
Page Web
Développeurs
Galerie d'images
Liste des flux RSS
Activité
Statistiques
Historique
Téléchargements
List of Releases
Stats
Code Source
Liste des dépôts de code
Subversion
Voir le référentiel
Ticket
Liste des tickets
Liste des Jalons
Liste des types
Liste des composants
Liste des tickets/RSS fréquemment utilisés
Soumettre un nouveau ticket
Documents
Page de garde
Index du titre
Modifications récentes
Communication
Forums
Liste des forums
Forum des développeurs (1)
Forum d’aide (1)
Discussion-Ouverte (7)
Listes de diffusion
Liste de ML
Nouvelles
Forums:
Discussion-Ouverte
(Thread #30580)
Retour à la liste de discussion
RSS
IE9での予定編集のときの「終了日による指定」のjscalendarの表示位置 (2011-10-11 15:46 by
domifara
#60013)
Création d'un nouveau ticket
IE9での予定編集のとき
「終了日による指定」のjscalendarの表示位置が、全日オプション行あたりの上に画面を外れる表示をします。
firefox(6.02)では、「終了日による指定」の横にキチンと表示されます。
IE9だけでの症状と思われますが?特定できてません
RE: IE9での予定編集のときの「終了日による指定」のjscalendarの表示位置 (2011-10-12 14:03 by
domifara
#60027)
Création d'un nouveau ticket
IE9でカレンダーの位置がずれる箇所を特定しました。
calendar.jsの line 1393からの
[code]
if (Calendar.is_ie) {
br.y += document.body.scrollTop;
br.x += document.body.scrollLeft;
} else {
br.y += window.scrollY;
br.x += window.scrollX;
}
[/code]
このis_ieのときに、document.body.scrollTopを加算していますが、
IE9のときは、他のブラウザーと同じに window.scrollY を加算すれば位置がずれません。
IE8もそうなのでは?
それで、
[code]
//HACK by domifara
Calendar.is_ie8 = ( Calendar.is_ie && /msie 8\.0/i.test(navigator.userAgent) );
Calendar.is_ie9 = ( Calendar.is_ie && /msie 9\.0/i.test(navigator.userAgent) );
と
//HACK by domifara
if (Calendar.is_ie8 || Calendar.is_ie9) {
br.y += window.scrollY;
br.x += window.scrollX;
}else if (Calendar.is_ie) {
br.y += document.body.scrollTop;
br.x += document.body.scrollLeft;
} else {
br.y += window.scrollY;
br.x += window.scrollX;
}
[/code]
と変更したもの zipにしました。
http://xodomifara.lolipop.jp/karidown/calendar_js.zip
私のテスト環境をあまり用意できないので、
試してみていただけないでしょうか?
Répondre à
#60013
RE: IE9での予定編集のときの「終了日による指定」のjscalendarの表示位置 (2011-11-01 20:34 by
domifara
#60304)
Création d'un nouveau ticket
IE8での正常動作確認しました。
改定版位置では、window.scrollY を加算すれば正常動作するけど
訂正というのは、IE9.8のときwindow.scrollYが undifine値なのに正しい位置にカレンダーが表示される不思議な現象を
まあいいかみたいにしていたのですが
どうも
元の原因は Calendar.getAbsolutePos で取得される
boxの位置がIE9.8で旧バージョンと異なるのが、元の原因ではないかと思われます
offsetTopの扱いがスクロール値まで含んだものに変わったのかな?
calendar.jsの line 1396 ぐらいの
旧バージョンではscrollTopによる補正が必要だったのが
IE8,IE9では不要になったと思われます。
改定2版
[code]
//HACK by domifara
if (Calendar.is_ie8 || Calendar.is_ie9) {
//Correction is not needed
}else if (Calendar.is_ie) {
br.y += document.body.scrollTop;
br.x += document.body.scrollLeft;
var tmp = box.x + box.width - br.x;
if (tmp > 0) box.x -= tmp;
tmp = box.y + box.height - br.y;
if (tmp > 0) box.y -= tmp;
} else {
br.y += window.scrollY;
br.x += window.scrollX;
var tmp = box.x + box.width - br.x;
if (tmp > 0) box.x -= tmp;
tmp = box.y + box.height - br.y;
if (tmp > 0) box.y -= tmp;
}
[/code]
改定2版
http://xodomifara.lolipop.jp/karidown/calendar_js.zip
IE8,9では(firefoxも)では正常動作しました
後はIE7での動作検証が必要です。
Répondre à
#60013