ラウンジ(兼FAQ掲示板)

WEB_EDITORのtree表示エラー
過去ログ NO.1176514085
□ いいとも [2007年04月07日12時11分]
WEB_EDITOR 2.01をダウンロードさせていただきました。ありがとうございます。
設置と動作はうまくできたのですが、ツリー表示開始ディレクトリを変更すると、
1、エディター側のフレーム内の"ディレクトリ"が"undefined"になり、
2、tree表示のディレクトリを展開したあと、閉じようとすると
ディレクトリ内の項目名だけが消え、展開時のスペース分だけ広がったままになります。
tree表示のディレクトリ閉じ時のエラーはJavaScriptエラーです。

ライン:86
文字:10
エラー:'val' は Null またはオブジェクトではありません。
コード:0
URL:
http://wing2.jp/~iitomo/cgi-bin/web_editor.cgi?menu

原因を調査してみたところ、相対パスがデフォルトの"."のままだと問題ないのですが、
パスを変更すると必ず起こる現象っぽいです。
複数のサイト、複数のパソコンで再現確認しました。自宅サーバーでも発生しました。


# ツリー表示開始ディレクトリを相対パスで記述("."でこのスクリプト設置場所以下)
# 例:2つ上のdocumentというディレクトリから開始する場合は、"../../document"
#(最後に/を付けないこと)
$st_dir = "../../iitomo";

ディレクトリ構成やパーミッションうんぬんの問題ではなさそうなのですが、
過去ログに同じ内容の質問がなかったので、
私の環境だけで発生する問題なのかわかりませんでした。

上記のURLにサンプルがあります.パスは"test"です。
よろしくお願いいたします。


ついでにですが、上記のようなレンタルサーバーの相対パスだと、
トップページまでの相対パス内に"~"を含めずに指定すると動作しますが、
弊害としてエディター内で画像が正常にリンクされなくなります。
□ NXer [2007年04月07日15時44分]

はじめまして。NXerです。

----------------------------
71 #$st_dir = ".";
72 $st_dir = "../abc";
----------------------------

当方のローカルサーバでも、上のように../abc とすると
>エラー:'val' は Null
が発生しました。IEのスクリプトのデバグを起動してみると次の312行でエラー
が発生していました。
------------------------------------------309行目付近
309 if (String(parent.disp.document.location).match(/$script/)) {
val = dirname[p];
val = '$st_dir';//値の代入
val = val.substring(0,val.lastIndexOf('/'));
parent.disp.document.forms[0].dir.value = val;
}
----------------------------------
そこで 310行目で Nullの値となっている val に適当な値を311行目で
代入してみました。 val=''; でもディレクトリを閉じることが
できました。意味は解読できませんが、dirname[p]がディレクトリ
名の配列なので、開始ディレクトリ文字列変数を入れてみました。

javascriptのメニューの開閉の「閉」のエラーを回避しただけで
すが、運用上大きな不具合が伴うかどうかはテストしていません。
詳しくはよくわかりませんので、いいともさんのほうでもテストし
てください。同じように動作すればそれで問題解決ということで
失礼します。
□ いいとも [2007年04月09日19時31分]
NXerさん、はじめまして。回答ありがとうございます。

指示通りの修正を行った結果、treeの「閉」エラー回避はできました。
弊害はありませんでしたが、おっしゃる通り根本的な解決ではありませんでした。

私にはCGIスクリプトの知識はほとんどありませんので、
不具合の原因箇所を見つける事などできません。
それができれば苦労はしないのですが…、すみません。

ですので、以下は想像であり蛇足です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
tree開始ディレクトリの文字列の取得状態と
  (「/を使わないように」や、表示させたいディレクトリがユーザーの
    ホームディレクトリだったの場合の「 ~ (チルダ)」の取り扱いなど。)
それを相対パスとして取り扱う一連のスクリプト内(CGI,JAVAScriptの両方?)に
間違ったパス名を生成する構文が存在しているようです。

結果、正しいパスが参照されずに、
treeを閉じるディレクトリが認識できなかったり、
削除するディレクトリ名ボックスに"undefined"になったり
画像のパスが間違っていて表示できなかったりするみたいです。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
現時点のバージョンではtree開始ディレクトリの変更は(エラーを容認しないのであれば)
不可能であり、初期設定状態のままでしか正常動作してくれません。

もともとの趣旨であるHTMLなどの書き換えは可能なので、
運用的にはほとんど問題がなくなりました。
でも、エラーが残っているのは気分的に気持ちが落ち着かないので、
作者様にお時間がありましたら、修正済みバージョンアップがなされることを
期待しております。

ありがとうございました。

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.