ページ 11

IEでは本文欄の見出し変更や非表示で不具合

Posted: 2011年10月09日(日) 21:39
by kazuike
以前のバージョンから不具合があったような気がしますが、
ManagerManagerで、本文欄の見出しを変更したり本文欄を非表示にしようとする場合、
IEでは、不具合が出ます。(FFやChromeでは起こりません)

とりあえず、直近で確認した環境は、
・MODX-1.0.5J-r7
・IE8
ですが、
▼見出し変更 … 変更できません。
mm_renameSection('content', '本文');

▼非表示 … 入力欄は消えますが、見出しが消えません。
mm_hideSections('content');

IEの開発ツール(F12)で調べてみたところ、
HTMLソース上で「id="content_header"」だったものが、
IE8では、「id="sectionTVsHeader"」に変化しています。
(ちなみに、テンプレート変数セクションの見出しのidは「tv_header」です。)

この現象(idが変わる)は、
ManagerManagerを停止すると起きませんが、
ManagerManagerが動いている場合は、常に起きるようです。

どうも、
assets/plugins/managermanager/mm.inc.php
の361~367行目あたりが怪しいような気もしますが…IEだけなぜ?

コード: 全て選択

// Change section index depending on Content History running or not                  
var sidx = ($j("div.sectionBody:eq(1)").attr("id") == "ch-body")?1:0;  //ch-body is the CH id name (currently at least)

// Give IDs to the sections of the form
// This assumes they appear in a certain order
$j("div.sectionHeader:eq(sidx)").attr("id", "sectionContentHeader");
$j("div.sectionHeader:eq(sidx+1)").attr("id", "sectionTVsHeader");

Re: IEでは本文欄の見出し変更や非表示で不具合  【解決済み】

Posted: 2011年10月10日(月) 01:09
by yama

コード: 全て選択

var sidx = ($j("div.sectionBody:eq(1)").attr("id") == "ch-body")?1:0;
$j("div.sectionHeader:eq(sidx)").attr("id", "sectionContentHeader");
$j("div.sectionHeader:eq(sidx+1)").attr("id", "sectionTVsHeader");
$j("div.sectionBody:eq(sidx+1)").attr("id", "sectionContentBody");
$j("div.sectionBody:eq(sidx+2)").attr("id", "sectionTVsBody");
上記の5行(コメントなどは削除してます)を、

コード: 全て選択

if(jQuery.bindReady())
{
    var sidx = ($j("div.sectionBody:eq(1)").attr("id") == "ch-body")?1:0;
    $j("div.sectionHeader:eq(sidx)").attr("id", "sectionContentHeader");
    $j("div.sectionHeader:eq(sidx+1)").attr("id", "sectionTVsHeader");
    $j("div.sectionBody:eq(sidx+1)").attr("id", "sectionContentBody");
    $j("div.sectionBody:eq(sidx+2)").attr("id", "sectionTVsBody");
}
上記のようにif(jQuery.bindReady()){}で囲ってみるとどうでしょうか?

Re: IEでは本文欄の見出し変更や非表示で不具合

Posted: 2011年10月11日(火) 11:26
by kazuike
yamaさん、ありがとうございます。直ったようです。

ところで、
ここで特別扱いされている「ch-body」というidはいったい何でしょう?
探してみたのですが、見つけられませんでした。

この一連のJavaScript、実行されていたら、
「ch-body」の有無にかかかわらず、
sectionHeaderやsectionBodyのidが変わるはずなのに、
FFやChromeで変わっていないということは、
一度も実行されていないということでしょうか???

そもそも、idが変わっていたら、
ManagerManagerのセクション関連の機能が使えないですよね?

元々不要なスクリプトだったりして…

#「jQuery.bindReady」って、実装が変わりそうで、これを使うのは、ちょっと将来が不安な気も…

Re: IEでは本文欄の見出し変更や非表示で不具合

Posted: 2012年8月14日(火) 22:23
by yama
こちらの件。jquery1.8で実装が変わってbindReady()自体が廃止されました。上記の対応を行なわなくてもIEで動作すると思いますので、関心ある方はお試しください