dポイントプレゼントキャンペーン実施中!

今、簡単なデモCD-ROMを作ろうとしています。

htmlでつくっているので、ファイルを開くと、Directorでつくられたものなどと違ってツールバーやアドレスバーが表示されてしまいます。

window.open("opening.html","demo","width=640,height=400,left=10,top=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,favorites=no,resizable=yes");

といったスクリプトでサブウインドウを開く時にはボタンバーやアドレスバーの表示の有無を設定できますが、そのような形でなく、最初のhtmlファイルが開かれた時点でツールバーやアドレスバーなどが無いウインドウとして表示したいのですが、そのようなことが可能なスクリプトって無いものでしょうか?

具体的に言いますと、このCDは、オートランが有効になっているマシンに挿入するとFor_Windows.htmlというファイルが自動起動するようにAUTORUN.INFを設定してあり、要するにこのCDを挿入したら最初からツールバーやアドレスバーなどが無いウインドウとして表示したいのです。

For_Windows.htmlにさらにポップアップウインドウが自動的に全画面表示になって開くように設定すればいいかとも思ったのですが、その方法ですと本編を見終わってウインドウを閉じると下から親ウインドウが出てきてしまい、CDの内容を見ていた人はその親ウインドウまで閉じなければならなくてスマートではありません。
親ウインドウが時限式で自動的に閉じるようにしようかとも思いましたが、その場合は当然「ウインドウが閉じられようとしています」という警告が出てきてしまいますよね。これも困ります。

あくまでもhtmlでつくる前提でこの問題を解決する方法を何かご存知の方がいらっしゃいましたら教えて頂けないでしょうか?

A 回答 (4件)

HTMLでという条件の解釈が問題ですが、単純にHTAにするだけではダメなんでしょうか?


実際には作っておられるhtmlの<head>~</head>の間に
<HTA:APPLICATION ID="DEMO"
APPLICATIONNAME="win_demo"
BORDER="none"
CAPTION="no"
ICON="/demo.ico"
SHOWINTASKBAR="no"
SINGLEINSTANCE="yes"
SYSMENU="no"
WINDOWSTATE="maximize">
とかいった定義を加え、ファイル名の拡張子を「.hta」にするだけです
アイコンファイルを用意しておけば開いたウインドウ隅に通常のプログラムのように表示されます。

参考URL:http://msdn.microsoft.com/library/default.asp?ur …

この回答への補足

同一ページ内で内容が変わるようにする方法、半分解りました。
HTAタグの中にNAVIGABLE="yes"というのも加えればいいんですね。

ただ、リンクした先がフレームを有するページの場合で、たとえば左フレームのボタンをクリックすると右フレームの内容が変わるようにターゲットを設定してあるケースでは、リンク先で左フレームのボタンをクリックすると、右フレームの内容が変わるのではなく、右フレームに表示されるはずのページが新しいウインドウで開いてしまうんです。
今、この問題をどうにかしようとweb上を探し回って調べています。

補足日時:2003/02/12 16:37
    • good
    • 0
この回答へのお礼

ご回答、どうもありがとうございます。

要は、FLASHとかDirectorとかいったアプリを使わずに作れるものということだったのでHTAで全く問題ありません。

この方法で開いたウインドウから別のページにリンクするとリンク先のページは別ウインドウで開いてしまうので、同一ページ内で内容が変わるようにできないかと今調べているところですが、可能なのかどうかは今のところよく判りません。

でも、教えて頂いたスタイル、タスクバーやタイトルバーまでナシにできるんですね。こんな事ができるなんて知りませんでした! すごくいいです!!

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

お礼日時:2003/02/12 16:20

iframeを使えば何とかなりそうです 以下の3つのファイルを同じディレクトリにおいて試してください


sample.hta
--------------------
<!DOCTYPE HTML PUBLIC "--//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<html lang="ja">
<head>
<title>Sample</title>
<HTA:APPLICATION ID="sample" applicationname="Demo Sample"
border="thick" borderstyle="normal"
CAPTION="yes" ICON=""
MAXIMIZEBUTTON="yes" MINIMIZEBUTTON="yes" SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes" SYSMENU="yes" VERSION="0.1" WINDOWSTATE="normal"/>
<body>
<center>
<b>
M A I N M E N U </b>
<a href="t1.html" target="main"> PAGE 1 </a> , <a href="t2.html" target="main"> PAGE 2 </a>
</center><br>
<iframe id="main" name="main" width="100%" height="1000"></iframe>
</body>
</html>
-------------
t1.html
-------------
<html>This page is 1st.</html>
-------------
t2.html
-------------
<html>This page is 2nd</html>
-------------
    • good
    • 0
この回答へのお礼

iフレーム! なるほど!!
これは決定的な打開策です。
教えて頂けばなるほどと納得するんですが、思いつきませんでした。
これは頭の柔らかさの問題ですね。
何度もお手数をおかけいたしました。
どうもありがとうございました!!

お礼日時:2003/02/18 10:56

HTAが駄目だったようなので、かなり自信はありませんが…


ブラウザのバージョンが6と言う事なので可能かもしれません。

1.まず、以下のソースを「For_Windows.html」にコピペして下さい。
2.次に、「For_Windows.html」のショートカットを作成。
3.作成したショートカットのプロパティを開き、”実行時の大きさ”を「最小化」にして下さい。
※ここで、親ウィンドウをタスクバーで起動しているので親画面は表示されません。
表示されないまま、子ウィンドウを開いた後に親自身を閉じるようにしています。
この時に、警告メッセージを表示しないような工夫をしています。
ただし、この処理はIE6.0以上限定となってしまいます。

以下ソース
//'******************** ここから ********************
<script>
<!--
//メニューバーの無い子ウィンドウを開く。
var nw=window.open("opening.html","demo","width=640,height=400,left=10,top=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,favorites=no,resizable=yes");
//起動している自分自身(親ウィンドウ)を閉じる。
//※IE6.0以上限定処理…閉じるときの警告を非表示。
var ow=window.open("","_top");
ow.opener=window;
ow.close();
//-->
</script>
//'******************** ここまで ********************
    • good
    • 0
この回答へのお礼

ご回答、どうもありがとうございました!

HTAでも警告が出てしまうというのは、何かPCの一時的な誤動作だったようで、最初に作ったままの残してあった大元のFor_windows.htmlを削除したらHTAでダイアログなしのウインドウクローズが実現したのですが、BlueRayさんに教えて頂いた方法だとアプリケーションでなくて完全なhtml書類扱いなのでオンラインで使用したときも「次のファイルをダウンロードしています」というダイアログが表示されずに済み、より活用範囲の広い方法でいいですよね。

今回はCDで使用するので多くのブラウザで開けるHTAの方を使おうと思いますが、教えて頂いたソースは今後オンラインで何か作る時、活用させて頂く事になると思います。

この度はどうもありがとうございました!

お礼日時:2003/02/12 16:08

HTAアプリケーション(For_Windows.hta)をAUTORUN.INFで自動起動するようにする。



For_Windows.htaの記述内容は以下のとおりです。
こんなのダメかな?
-------------------------------------------------------------------
<HTML>
<HEAD>
</HEAD>
<BODY>
</BODY>
<SCRIPT type="text/javascript">
window.open("opening.html","demo","width=640,height=400,left=10,top=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,favorites=no,resizable=yes");
window.close();
</SCRIPT>
</HTML>
-------------------------------------------------------------------
こうすると、ダイアログが出ずに親ウインドウが消えますよ。

この回答への補足

かなり後になってから判明しましたが、教えて頂いた方法、実は有効でした!

「閉じられようとしています」とダイアログが出てしまうウインドウに表示されているURLがなぜかFor_windows.htaでなくFor_windows.htmlだったので、残したままになっていた.htmlの方が間違って開かれているのかなと思い、このFor_windows.htmlを削除した上で、念のためインターネット一時ファイルの削除もして再度実行してみました。

すると、IE4.5以外のブラウザ…つまり5.0以上ではWin/Macすべての環境でダイアログなしのウインドウすり替えを実現できることが確認できました!

どうもありがとうございました!!

補足日時:2003/02/11 11:44
    • good
    • 0
この回答へのお礼

早々のご回答をどうもありがとうございました。
早速やってみたんですが、残念ながらWin98+IE6.0の環境とWinXP+IE6.0の環境ではやはり「ウインドウは表示中のWebページにより閉じられようとしています…」のダイアログが出てしまいます。
教えていただいたソース、今までに目にしていたのとちょっと記述が違ったので「これは行けそう!」と思ったのですが…。
OSとIEのバージョンの組み合わせによって違うのかもしれませんね。
Macならスマートにすり替わってくれるのですが…。

せっかくお答え頂いたのに良い結果報告ができなくて申し訳ありませんでしたが、これに懲りず、また何かの折りにはどうかよろしくお願い致します。

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

お礼日時:2003/02/06 23:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!