TinyMCEのリンク機能でIEのみエラー 【解決済み】
-
- メンバー
- 記事: 14
- 登録日時: 2010年6月11日(金) 17:53
TinyMCEのリンク機能でIEのみエラー 【解決済み】
お世話になっております。
先月「テンプレート変数のimageタイプでstack overflow? 」のトピックでお世話になった者です。その節は本当にありがとうございました。
そのときの問題とまったく無関係ではないかもしれない問題なのですが、またどうしても解決法がわからず投稿いたします。
今回はIEのみの現象で、FireFoxその他のモダンブラウザでは問題なく動いています。
TinyMCEで文字列選択→リンクアイコンから「リンクの挿入・編集」立ち上げ→参照ボタンをクリック
のあたりのタイミングで、
'undefined'はNullまたはオブジェクトではありません。
index.php ライン:1070
http://xxxxx/manager/index.php?id=273&a=27
のエラーが投稿画面側に出ます。エラーを閉じればリンクはできるのですが、他のユーザーも使うところになるのでなるべくIEでエラーなく動作できればと思っています。
度々恐れ入ります、よろしくお願いします。。
[サーバ]
ホスト&契約タイプ:さくらの専用サーバRAIDプランXeonモデル
ネットワーク:インターネット
Webサーバ:Apache2.2.3
PHPバージョン:5.2.13
phpinfo
http://www.senpro.jp/phpinfo.php
DB:MySQL 5.1.43
[modx]
バージョン:1.0.2J、1.0.4Jで同じ挙動を確認
[クライアント]
ブラウザ:IE:上記のとおり
Firefox他:問題なし
先月「テンプレート変数のimageタイプでstack overflow? 」のトピックでお世話になった者です。その節は本当にありがとうございました。
そのときの問題とまったく無関係ではないかもしれない問題なのですが、またどうしても解決法がわからず投稿いたします。
今回はIEのみの現象で、FireFoxその他のモダンブラウザでは問題なく動いています。
TinyMCEで文字列選択→リンクアイコンから「リンクの挿入・編集」立ち上げ→参照ボタンをクリック
のあたりのタイミングで、
'undefined'はNullまたはオブジェクトではありません。
index.php ライン:1070
http://xxxxx/manager/index.php?id=273&a=27
のエラーが投稿画面側に出ます。エラーを閉じればリンクはできるのですが、他のユーザーも使うところになるのでなるべくIEでエラーなく動作できればと思っています。
度々恐れ入ります、よろしくお願いします。。
[サーバ]
ホスト&契約タイプ:さくらの専用サーバRAIDプランXeonモデル
ネットワーク:インターネット
Webサーバ:Apache2.2.3
PHPバージョン:5.2.13
phpinfo
http://www.senpro.jp/phpinfo.php
DB:MySQL 5.1.43
[modx]
バージョン:1.0.2J、1.0.4Jで同じ挙動を確認
[クライアント]
ブラウザ:IE:上記のとおり
Firefox他:問題なし
Re: TinyMCEのリンク機能でIEのみエラー
上記のURLをブラウザで実際にアクセスしてhtmlのソースを開き、1070行目付近に何が書いてあるかを教えていただけますでしょうか。ここに何が書いてあるかは、利用しているプラグインによって環境ごとに異なります。前回の件も原因が分からず対症療法で終わってるようですが、同じようなことが原因のように見えます。http://xxxxx/manager/index.php?id=273&a=27
グローバル設定の「管理画面操作のリファラチェック」が「はい」になっていると開くことができないかもしれませんので、その場合は「いいえ」にしてからURLを開いてみてください。
Re: TinyMCEのリンク機能でIEのみエラー
下が原因っぽい感じがします。詳しい原因や対処方法は分からないのですが、リソースブラウザを開く時は都合3枚のウィンドウが表示されてウィンドウの前後関係が入れ替わるので、フォーカスを移す処理がタイミング(条件)的に無理があるのかもしれません。エラーを誘発する行をコメントアウトするとエラーは出なくなるようです。コメントアウトしても一見問題ないように見えますが、他の問題を引き起こす可能性がありそうな気がしました。 >> どうでしょね?
(フォーカスを移す処理なんで、そう大きな問題は出ない気はしますが・・・)
assets/plugins/tinymce/js/modx_fb.js.inc (L46)
//if (window.focus) {windowManager.focus()}
ちなみに、ブラウザのスクリプトエラーに対する扱い方が違うためIEだけの現象に見えますが、実際にはFFなどでも発生してる気がします。
(フォーカスを移す処理なんで、そう大きな問題は出ない気はしますが・・・)
assets/plugins/tinymce/js/modx_fb.js.inc (L46)
//if (window.focus) {windowManager.focus()}
ちなみに、ブラウザのスクリプトエラーに対する扱い方が違うためIEだけの現象に見えますが、実際にはFFなどでも発生してる気がします。
-
- メンバー
- 記事: 14
- 登録日時: 2010年6月11日(金) 17:53
Re: TinyMCEのリンク機能でIEのみエラー
yamaさん、sama55さん、返信ありがとうございます。
またソースを提示せずすみません。。
のwidth:screen.width*0.7の行のようです。
グローバル設定の「管理画面操作のリファラチェック」を「いいえ」にしたところ、同じ状態でした。
sama55さんの方法、さっそくコメントアウトしたところ、ファイルの一覧ウィンドウが後ろに出たりはしますが、エラーが出なくなりました。
他の問題も今のところ大丈夫そうだと思います。もし何か見つけましたらこのトピックに追記いたします。
なるほど、他のブラウザでも表に出ないだけで発生はしているんですね。
前回の件も何か他のところで原因があるのかもしれませんが、まずは解決にさせていただきます。ありがとうございます。
またソースを提示せずすみません。。
コード: 全て選択
function modx_fb (field_name, url, type, win) {
if (type == "media") {type = win.document.getElementById("media_type").value;}
var cmsURL = "/manager/media/browser/mcpuk/browser.php?Connector=/manager/media/browser/mcpuk/connectors/php/connector.php&ServerPath=/&editor=tinymce&editorpath=/assets/plugins/tinymce/";
switch (type) {
case "image":
type = "images";
break;
case "media":
case "qt":
case "wmp":
case "rmp":
type = "media";
break;
case "shockwave":
case "flash":
type = "flash";
break;
case "file":
type = "files";
break;
default:
return false;
}
if (cmsURL.indexOf("?") < 0) {
//add the type as the only query parameter
cmsURL = cmsURL + "?type=" + type;
}
else {
//add the type as an additional query parameter
// (PHP session ID is now included if there is one at all)
cmsURL = cmsURL + "&type=" + type;
}
var windowManager = tinyMCE.activeEditor.windowManager.open({
file : cmsURL,
width : screen.width * 0.7, // Your dimensions may differ - toy around with them!
height : screen.height * 0.7,
resizable : "yes",
inline : 0, // This parameter only has an effect if you use the inlinepopups plugin!
close_previous : "no"
}, {
window : win,
input : field_name
});
if (window.focus) {windowManager.focus()}
return false;
}
グローバル設定の「管理画面操作のリファラチェック」を「いいえ」にしたところ、同じ状態でした。
sama55さんの方法、さっそくコメントアウトしたところ、ファイルの一覧ウィンドウが後ろに出たりはしますが、エラーが出なくなりました。
他の問題も今のところ大丈夫そうだと思います。もし何か見つけましたらこのトピックに追記いたします。
なるほど、他のブラウザでも表に出ないだけで発生はしているんですね。
前回の件も何か他のところで原因があるのかもしれませんが、まずは解決にさせていただきます。ありがとうございます。
Re: TinyMCEのリンク機能でIEのみエラー
その部分だとすると
var windowManager = tinyMCE.activeEditor.windowManager.open()
この書き方自体が変な気がしますね。JavaScriptあまり詳しくないんで自信ないですけど、これはこれで正しいのかな?
解決の確約はできないですが機会があれば調べてみます。
var windowManager = tinyMCE.activeEditor.windowManager.open()
この書き方自体が変な気がしますね。JavaScriptあまり詳しくないんで自信ないですけど、これはこれで正しいのかな?
解決の確約はできないですが機会があれば調べてみます。
Re: TinyMCEのリンク機能でIEのみエラー
こう書いてもエラーは出なくなるようです。自分のIEは8ですが、エラーが出なくなるのと同時に発生する副作用(manmaru216さんの仰るウィンドウが後ろに隠れる)は発生せずにちゃんとリソースウィンドウが前に出ます。下の修正でどうでしょね? >> manmaru216さんyama さんが書きました:その部分だとすると
var windowManager = tinyMCE.activeEditor.windowManager.open()
この書き方自体が変な気がしますね。JavaScriptあまり詳しくないんで自信ないですけど、これはこれで正しいのかな?
コード: 全て選択
//var windowManager = tinyMCE.activeEditor.windowManager.open({
tinyMCE.activeEditor.windowManager.open({
コード: 全て選択
//if (window.focus) {windowManager.focus()}
if (window.focus) {tinyMCE.activeEditor.windowManager.focus()}
-
- メンバー
- 記事: 14
- 登録日時: 2010年6月11日(金) 17:53
Re: TinyMCEのリンク機能でIEのみエラー
yamaさん、sama55さん、ありがとうございます。
「オブジェクトでサポートされていないプロパティまたはメソッドです。」
というエラーになりました。
とりあえず、前のコメントアウトだけのものに戻してみました。
すみません、お手数おかけしてます。。
こちらを試しましたところ、私もIE8ですが、同じところで
「オブジェクトでサポートされていないプロパティまたはメソッドです。」
というエラーになりました。
とりあえず、前のコメントアウトだけのものに戻してみました。
すみません、お手数おかけしてます。。
Re: TinyMCEのリンク機能でIEのみエラー
こちらの環境と現象が違いますね。
RTEはしつこくキャッシュが働くので、ソースの変更後は一旦ログアウトしてログインしなおしたり、クライアントキャッシュを消す必要があったりしますが、これまでの変更で挙動が変わったのですから、その辺はちがいますよねー
問題の根本解決にはなりませんが、インターネットのセキュリティ設定を変えてると軽度なスクリプトエラーでも停止することがあることは聞いたことありますが・・・
あとは、IEの開発者ツールで追いかけてみるとか・・・
http://www.atmarkit.co.jp/fwin2k/win2kt ... e8dvt.html
RTEはしつこくキャッシュが働くので、ソースの変更後は一旦ログアウトしてログインしなおしたり、クライアントキャッシュを消す必要があったりしますが、これまでの変更で挙動が変わったのですから、その辺はちがいますよねー
問題の根本解決にはなりませんが、インターネットのセキュリティ設定を変えてると軽度なスクリプトエラーでも停止することがあることは聞いたことありますが・・・
あとは、IEの開発者ツールで追いかけてみるとか・・・
http://www.atmarkit.co.jp/fwin2k/win2kt ... e8dvt.html
Re: TinyMCEのリンク機能でIEのみエラー
なんとなくですが一般的なプログラミング言語の感覚で考えるとオブジェクト(インスタンス?)を素直な(と思える)形で作ってみるとよさそうな気がします。
var windowManager = tinyMCE.activeEditor.windowManager.open()
これだとopenメソッドを実行した状態をインスタンス化(?)しようとしているように見えますが、しかもwindowManagerって名前は使っていいのかなという気もするので(問題ない?)、
var wm = tinyMCE.activeEditor.windowManager;
とした後で
wm.open()
を実行して、あとで出てくるfocusメソッドでもこれを使って
if (window.focus) {wm.focus();}
こんなふうにすると順当なのかな?という気がします・・誰かJavaScript詳しい人いないかな orz
var windowManager = tinyMCE.activeEditor.windowManager.open()
これだとopenメソッドを実行した状態をインスタンス化(?)しようとしているように見えますが、しかもwindowManagerって名前は使っていいのかなという気もするので(問題ない?)、
var wm = tinyMCE.activeEditor.windowManager;
とした後で
wm.open()
を実行して、あとで出てくるfocusメソッドでもこれを使って
if (window.focus) {wm.focus();}
こんなふうにすると順当なのかな?という気がします・・誰かJavaScript詳しい人いないかな orz
Re: TinyMCEのリンク機能でIEのみエラー
ソースが圧縮されてるので追いにくいんですよね(メソッドがさっぱり)。。。本家フォーラムで突っ込んでみましょうか?
おっと・・・その前に本家版の再現性も確認せねば。。。 → 1.0.4でも現象を確認
ここに投げてみました。
http://modxcms.com/forums/index.php/topic,51350.0.html
JIRAに投げてくれ、とのことなのでこちらに。
http://svn.modxcms.com/jira/browse/TINYMCE-70
おっと・・・その前に本家版の再現性も確認せねば。。。 → 1.0.4でも現象を確認
ここに投げてみました。
http://modxcms.com/forums/index.php/topic,51350.0.html
JIRAに投げてくれ、とのことなのでこちらに。
http://svn.modxcms.com/jira/browse/TINYMCE-70
-
- メンバー
- 記事: 14
- 登録日時: 2010年6月11日(金) 17:53
Re: TinyMCEのリンク機能でIEのみエラー
sama55さん、yamaさん、いろいろありがとうございます。
一覧のウィンドウは、どうもリンクの挿入・編集ウィンドウの前に出たり後ろに出たりしてます。
なるほど、本家版から起こる現象だったんですね。。
こちら、試してみたところ、エラーが出なくなりました。yama さんが書きました: var wm = tinyMCE.activeEditor.windowManager;
とした後で
wm.open()
を実行して、あとで出てくるfocusメソッドでもこれを使って
if (window.focus) {wm.focus();}
一覧のウィンドウは、どうもリンクの挿入・編集ウィンドウの前に出たり後ろに出たりしてます。
なるほど、本家版から起こる現象だったんですね。。
Re: TinyMCEのリンク機能でIEのみエラー
自分でもよく理解できてないようなグダグダな説明が通じてよかったです orz
if (window.focus) {wm.focus();}
これってそもそもどういう意味なんでしょ?wm.focus();だけでいいような気もするのですが・・
if (window.focus) {wm.focus();}
これってそもそもどういう意味なんでしょ?wm.focus();だけでいいような気もするのですが・・
Re: TinyMCEのリンク機能でIEのみエラー
お待たせです。修正したので試してみてください。やってることは上記で説明したとおりです。これで問題なければ次のバージョンアップで積み込みます。「リンクの挿入・編集ウィンドウの前に出たり後ろに出たりしてます」ってことなので、まだ解決されてない問題があるみたいですが。そもそもこのfocusって最初から意味ないんじゃないかという・・
- 添付ファイル
-
- modx_fb.js.zip
- (748 バイト) ダウンロード数: 347 回