
Ubuntu日本語フォーラム

ログインしていません。
IEs4linuxでIE6をインストールしたのですが、ディスク上のhtmlファイルを開くことができません(FirefoxやOperaでは開けました)。
htmlファイルを右クリックして、「別のアプリで開く」からIE6を選ぶのですが、「ページを表示できません」と表示されて、存在しないアドレスを開こうとしたような扱いになります。
どうすれば開けるようになるでしょうか?
ちなみにUbuntuのverは8.04です。
よろしくお願いします。
最後の編集者: tettou77-1 (2008-12-04 12:54:52)
オフライン
A. 簡単なやり方:
Wine上のIEのメニューから、
ファイル -> 開く -> 参照ボタンを押して、開きたいファイルを開けばOKです。
B. Ubuntuの右クリックの「別のアプリで開く」を使って開く方法
おそらくこちらの方をtettou77-1 様は望んでいるのだと思います。
前提:
1. ie6の起動シェルスクリプトが/home/username/bin/ie6 にある。
2. Ubuntu上の /home/username/foo.html というHTMLファイルを開きたい。
tettou77様が遭遇されたエラーの説明:
最初に、tettou77-1 様が遭遇されたエラーが何だったのか説明します。
Ubuntuの右クリックの「別のアプリで開く」を選択し、一覧にie6の起動シェルスクリプトを追加しても上手く動きません。この時何が起きているかというと、「別のアプリで開く」でHTMLファイルを開くと、/home/username/foo.html という文字列がWine上のIE(IEXPLORE.EXE)にパラメタとして渡されます。IEは渡されたパラメタ/home/username/foo.html という文字列の頭に http:// を自動で付与した後に http:///home/username/foo.html を開こうとしますが、そんなURLは実際には存在しないので、「ページが見つかりません」というエラーページが表示されるのです。
私が考えた解決方法:
解決方法は、/home/username/bin/ie6 のシェルスクリプト内からIEに渡す引数を少しだけ加工することで、例でいうならば、/home/username/foo.htmlの代わりに、Z:/home/username/foo.html が渡されるようにする、という方法です。実際、Ubuntu上の /home/username/foo.html にあるファイルは、Wine上から見ると、Z:\home\username\foo.html にあるように見えるのです(理由は省略しますので、「wine zドライブ」などで調べてみてください)。Z:/home/username/foo.html と Z:\home\username\foo.html は違う、と思われるかもしれませんが、IEはURLがスラッシュで区切られていても、その辺りは融通を効かすのか、スラッシュをバックスラッシュ(日本語のフォントでは円記号\)に自動で変換してくれるようです。
よって、引数の加工としては、頭に Z:をつけるだけでよいのです。
引数の加工手順:
ベタなやり方ですが、引数を加工して渡すように既存のシェルスクリプトを改造します。
1. ie6の起動シェルスクリプトをコピーします。(ここではコピー後のファイル名を ie6-openlocalfile とします)
2. コピー後のファイル(ie6-openlocalfile)を編集します。
具体的な編集はというと、下記の add >> 〜 add << で囲われた行を追加し、 upd >> 〜 upd << で囲われた部分については、IEXPLORE.EXEに続く"$@"が"${ARR[@]}"になるように変更します。
---------
else
# add >>
ROOTDRIVE='Z:'
ARR=""; IDX=0;
while [ "$1" != "" ] ; do
ARR[IDX]="${ROOTDRIVE}$1"
IDX=`expr $IDX + 1`
shift 1
done
# add <<
# upd >>
#( wine "/home/username/.ies4linux/ie6/drive_c/Program Files/Internet Explorer/IEXPLORE.EXE" "$@" 2>&1 ) | debugPipe
( wine "/home/username/.ies4linux/ie6/drive_c/Program Files/Internet Explorer/IEXPLORE.EXE" "${ARR[@]}" 2>&1 ) | debugPipe
# upd <<
fi
---------
3. 「別のアプリで開く」の登録では、「コマンドを直接指定する」に /home/username/bin/ie6-openlocalfile を指定します。
以上
# シェルスクリプトは慣れていないので、稚拙なロジックになっているかもしれません。
# もっと良い方法があったら、ご指導願います。
「別のアプリで開く」で開けるように設定できました!
最近Ubuntuを始めたんですが、エラーに遭遇する度に勉強になりますね。
原因もよく分かりましたし、丁寧な説明ありがとうございました!
オフライン