- PR -

IFRAME srcの使い方について

投稿者投稿内容
EARL
会議室デビュー日: 2007/01/19
投稿数: 10
投稿日時: 2007-01-19 14:36
左のフレームから右のフレームにファイルをドラッグしてコピーするものを、htmlで作ろうとしています。左のフレームにはcドライブのあるフォルダーを固定して表示させますが、右のフレームには、その日の日付を元に自動で作成したフォルダーを開きたいのです。
自動で作成するのはbatで ”2007_01_19_PC1”というフォルダーをd:\の下に作り、そのフォルダーを右のフレームで開きたいのです。
右のフレームにはJavaScriptで上記のフォルダー名を作るとこまではうまくいったのですが、htmlの <IFRAME src= ・・・で上記を反映させることができません。
どなたかご存知でしたら教えてください。
ちなみに、PCはXP、IE6で使用します。
よろしくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-19 14:46
反映させることができない、というのは具体的にどういう意味でしょうか?
src= の部分にバッチで生成されたURLを織り込む方法がわからないのでしょうか?
それともハードコードでそういう表現をする html を書く方法自体わからないのでしょうか?
EARL
会議室デビュー日: 2007/01/19
投稿数: 10
投稿日時: 2007-01-19 14:57
早速の回答をありがとうございます。
右側のフォルダーを表示させるhtmlには、バッチで生成されたURLを織り込むのですが、下記のようなJavaScriptを使い織り込みたいのです。

<SCRIPT Language="JavaScript">
<!--
kyou = new Date();
yy = kyou.getFullYear();
mm = kyou.getMonth() + 1;
dd = kyou.getDate() -1;
// 月、日の文字配列
str_Month = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
str_Day = new Array("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
// 表示
fm = yy + "_" + str_Month[mm] + "_" + str_Day[dd] + "_PC1" ;
document.write( fm );
//-->
</SCRIPT>

<P align="center"><B><FONT size="+2">当日フォルダーの中身です</FONT></B></P>
<IFRAME src= d:\ + "fm" </IFRAME width="100%" height="80%" scrolling="AUTO"></IFRAME>

数字部分は”0”を補いたいので、ちょっとごちゃごちゃしてますが、このように書きました。上記の <IFRAME src= 以降をどのように書けばよいのか教えてください。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-19 16:00
"JavaScirpt で IFRAME の src を動的に変更する方法がわからない"、という質問でしょうか?

frame 要素に id 属性を書いておいて、document.getElementById() で frame 要素を取得して、書き込んではいかがでしょうか。
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-01-19 16:07
引用:

左のフレームから右のフレームにファイルをドラッグしてコピーするものを、htmlで作ろうとしています。


ちょっと意図が分かりません。
引用:

左のフレームにはcドライブのあるフォルダーを固定して表示させますが、右のフレームには、その日の日付を元に自動で作成したフォルダーを開きたいのです。
自動で作成するのはbatで ”2007_01_19_PC1”というフォルダーをd:の下に作り、そのフォルダーを右のフレームで開きたいのです。
右のフレームにはJavaScriptで上記のフォルダー名を作るとこまではうまくいったのですが、htmlの <IFRAME src= ・・・で上記を反映させることができません。


ローカルPCの d:¥yyyy_mm_dd_PC1 という名前(yyyy_mm_ddは今日の日付)の
フォルダの中にあるファイルの一覧を、右側のフレームに表示したい、
という意図でよいですか?(違ったらゴメンナサイ)

コード:
document.write("<IFRAME src='file://d:¥" + fm + "'></IFRAME>");



未検証ですが、こんな感じでいけませんか?
ポイントは、file:// でローカルディレクトリを参照するところです。
¥は半角にしてください。
EARL
会議室デビュー日: 2007/01/19
投稿数: 10
投稿日時: 2007-01-19 16:44
ありがとうございます。
やりたいことはまさしくそれです。

今、ご紹介していた方法を試していますが、何も表示されないか、”ページを表示できません”になります。
document.writeで、スクリプト中に書かずにhtmlの方に、いろいろ変えてみてますが、まだできません。

お手数をおかけしていますが、もうしばらく教えてください。
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-01-19 17:33
コード:

document.write("<IFRAME src='file:///d:/" + fm + "'></IFRAME>");


でした。

制限事項がいくつかあります。
・上記のJavaScriptを含むHTMLはローカルに存在して、ローカルのIEで開くことが前提です
(サーバにおいてクライアントから http://〜 でアクセスするとセキュリティ制限に引っかかります)
(追記: ローカルで開いてもActiveXの警告がでるかも)
・file:///でのディレクトリ表示は、Explorer(Internet Explorerではない)の機能で実現しています
(その内容に対してはIE、JavaScriptからは操作できません)

[ メッセージ編集済み 編集者: Tasuku 編集日時 2007-01-19 17:35 ]
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2007-01-19 17:50
引用:

Tasukuさんの書き込み (2007-01-19 17:33) より:
コード:
document.write("<IFRAME src='file:///d:/" + fm + "'></IFRAME>");




<script> 〜</script> の中に書くなら
コード:
document.write("<IFRAME src='file:///d:/" + fm + "'><\/IFRAME>");


の方が良いかもしれません。

スキルアップ/キャリアアップ(JOB@IT)