時間がなくて、ものすごい困っているので教えてください。
JavaScriptでテキストリンク部分から別ウインドウを立ち上げたいのですが、

<!--
function openWin()
{
window.open("sub.html","sub","width=320,height=240");
}
// -->

これだと一つのリンクと一つのウインドウにということになりますよね。
4つそういったリンクさせる場所が存在し、さらに同じサイズのウインドウを立ち上げたいのですが、4つを列記する場合はどうすればよいのでしょうか。javascript初心者なのでどうしてもわかりません。ご存じの方がいらっしゃいましたら、教えてください!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

下の回答を送信した後で、ひょっとしたら、リンクテキストが4箇所あるのかと思いましたので、その場合についても。



リンクテキストが4箇所あるのであれば、1箇所のときと同じことを4回やるだけです。ただし、同じ関数名は使えないので、リンクテキスト毎に呼び出すJavaScript関数の名前を変えてやればいいですね。


<!--
function openWin1()
{
window.open("sub1.html","sub1","width=320,height=240");
}
function openWin2()
{
window.open("sub2.html","sub2","width=320,height=240");
}
-->

<a href="" onClick="openWin1()">sample1</a>
<a href="" onClick="openWin2()">sample2</a>
    • good
    • 0
この回答へのお礼

ありがとうございます!早速やってみました!大丈夫でした!!!!!!
なんとか朝に間に合いました。本当に助かりました。ありがとうございました!これからも何かあったと木によろしくお願いいたします!!

お礼日時:2001/01/23 05:51

テキストリンク部分をクリックすると、それぞれ別の内容の4つのウィンドウが(同時に)立ち上がるようにしたい、ということですね。



<!--
function openWin()
{
window.open("sub1.html","sub1","width=320,height=240");
window.open("sub2.html","sub2","width=320,height=240");
window.open("sub3.html","sub3","width=320,height=240");
window.open("sub4.html","sub4","width=320,height=240");
}
// -->

でいかがでしょう。
質問の意図が違っていましたら、補足してください。

この回答への補足

ごめんなさい質問の方法がまずかったみたいです。
同時・・ではなくて、本文中にサブウインドウで立ち上げたい箇所が4カ所ありまして、たとえば「食器」という本文の部分をクリックすると「syokki.html」という書類がサブウインドウで立ち上がってきて、「料理」というところをクリックすると「ryouri.html」というサブウインドウが立ち上がってくるようにしたいのです。いろいろとやってみたのですが、なぜか4つがばたばたっと立ち上がってしまうのです(あくまでクリックの時に指定したファイルのみをサブウインドウで立ち上げたい)。どうしたらよいか教えてください。よろしくお願いいたします。

補足日時:2001/01/23 05:11
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJavaScriptで新しいウインドウを立ち上げたときにメインウインドウがおかしい

メインウインドウの文章中の下の方にリンクをはって、そこからサブウインドウを開いています。実は少し前にatsuotaさんにご回答いただいたこの方法を利用しているのですが

<!--
function openWin1()
{
window.open("sub1.html","sub1","width=320,height=240");
}
function openWin2()
{
window.open("sub2.html","sub2","width=320,height=240");
}
-->

<a href="" onClick="openWin1()">sample1</a>
<a href="" onClick="openWin2()">sample2</a>

このsample1とか2がスクロールしなくてもよいくらいの位置にあればいいのですが、スクロールしているところで配置してあると、メインウインドウが毎回トップのあたりにずれてしまうのです。(特別な制御はしていないはずなのですが・・・)

おわかりになる方がいらっしゃいましたら教えてください。

メインウインドウの文章中の下の方にリンクをはって、そこからサブウインドウを開いています。実は少し前にatsuotaさんにご回答いただいたこの方法を利用しているのですが

<!--
function openWin1()
{
window.open("sub1.html","sub1","width=320,height=240");
}
function openWin2()
{
window.open("sub2.html","sub2","width=320,height=240");
}
-->

<a href="" onClick="openWin1()">sample1</a>
<a href="" onClick="openWin2()">sample2</a>

このsample1とか2がスクロール...続きを読む

Aベストアンサー

追加ですが、以下のようにURLを引数でとるようにすれば、
一つのスクリプト呼ぶだけでウインドウ開き放題です。
あんまり勝手に違うウインドウ開かれると迷惑ですけどね。
-------------------------------------------------------
<html>
<head>
<script language="JavaScript">
<!--
function openWin(URL){
window.open(URL, "_blank", "width=320,height=240");
}
// -->
</script>
</head>

<body>
<a href="javascript:openWin('sub1.html')">sub1</a>
<a href="javascript:openWin('sub2.html')">sub2</a>
</body>
</html>
-------------------------------------------------------

追加ですが、以下のようにURLを引数でとるようにすれば、
一つのスクリプト呼ぶだけでウインドウ開き放題です。
あんまり勝手に違うウインドウ開かれると迷惑ですけどね。
-------------------------------------------------------
<html>
<head>
<script language="JavaScript">
<!--
function openWin(URL){
window.open(URL, "_blank", "width=320,height=240");
}
// -->
</script>
</head>

<body>
<a href="javascript:openWin('sub1.html')">sub1</a>
<a href="javascript:openWin('su...続きを読む

QHTAで,親ウインドウを閉じると同時に子ウインドウも閉じる

HTAを使っています。
*.htaのファイルにjavascriptを下記のとおり書いています。

目的は,親ウインドウで「閉じる」というボタンを押すことで
親ウインドウを子ウインドウを閉じるという動作をさせることです。

概ね上手く動きますが,子ウインドウが既に閉じられている状況で実行すると,「リモートサーバマシンが存在しないか,利用できません。」とエラーになります。

WINDOWS2000では問題無く動きますが,XPだとエラーが表示されます。

どうすれば,子ウインドウの状況によらず正常に動作するでしょうか?


##########################################################
<input type="button" value="終了" onclick="closeWindow()" class="tukuru">

var subWin=""; //subWinをグローバル変数として宣言
function closeWindow(){

item1.style.display="";

setTimeout("end()",2000);

}

function end(){

if ( subWin.closed == false ) {;

if(subWin.name+''=='OpenWindow'){;

subWin.close();

};
};
window.close();

}

HTAを使っています。
*.htaのファイルにjavascriptを下記のとおり書いています。

目的は,親ウインドウで「閉じる」というボタンを押すことで
親ウインドウを子ウインドウを閉じるという動作をさせることです。

概ね上手く動きますが,子ウインドウが既に閉じられている状況で実行すると,「リモートサーバマシンが存在しないか,利用できません。」とエラーになります。

WINDOWS2000では問題無く動きますが,XPだとエラーが表示されます。

どうすれば,子ウインドウの状況によらず正常に動作...続きを読む

Aベストアンサー

#1さんがおっしゃるように
>これは何のオブジェクトを使っていますか?
がわからないと見当違いの回答になる可能性があります。

試しやすい方向で勝手に解釈しました。
subWin = window.open()
で子ウィンドウを開いています。
環境はxp,IE6です。

呼び出したウィンドウが存在しなくなっているので
subWinのプロパティを参照するとエラーになるの仕方がないと思います。
以下、エラーの有無によって処理を分けています。

function end(){
try{
var chkWin = subWin.closed;
subWin.close();
window.close();
}catch(e){
//エラー発生時
window.close();
}
}

Q【CSS javascript】ブラウザ依存 各ボックスwidthの合計値をoffsetWidthに収めたときの表示

ボックス1、ボックス2、ボックス3と3つのボックスをfloat: left;で左から横に並べて、キッチリブラウザの幅に収めたいです。

ボックス1は、width: 20%;を指定。
ボックス2は、width: 5px;を指定。
ボックス3は、ブラウザ幅に3つが収まる値をjavascriptで計算して指定したいです。

そこで、各ボックスwidthの合計値をoffsetWidth以下なら、各ボックスは折り返さずに表示されると考え、以下htmlを作成しました。

※行頭スペースは全角です。

<html>
<head>
<style type="text/css">
#b1 {
 background-color: ffffff;
 float: left;
 height: 100%;
 width: 20%;
 overflow: auto;
}

#b2 {
 background-color: 000000;
 float: left;
 height: 100%;
 width: 5px;
}

#b3 {
 background-color: ffffff;
 float: left;
 height: 100%;
 overflow: auto;
}
</style>
<script>
i = function(id){ return document.getElementById(id) };
function init(){
 var W = document.body.offsetWidth || document.documentElement.offsetWidth;
 var b1 = i('b1').offsetWidth;
 var b2 = i('b2').offsetWidth;
 var b3= W - b1 - b2;

 alert(W +' = ' + b1 + ' + ' + b2 + ' + ' + b3);

 i('b3').style.width = b3 + 'px';
};
</script>
</head>
<body onLoad = "init();" >
<div id="b1">f1</div>
<div id="b2" ></div>
<div id="b3">f2</div>
</body>
</html>

上記を実行した結果、IE,Operaは折り返してしまい、FirFox,Google Chromeは折り返さずに表示できました。

IE,Operaは、なぜ折り返してしまうのでしょうか?

ボックス1、ボックス2、ボックス3と3つのボックスをfloat: left;で左から横に並べて、キッチリブラウザの幅に収めたいです。

ボックス1は、width: 20%;を指定。
ボックス2は、width: 5px;を指定。
ボックス3は、ブラウザ幅に3つが収まる値をjavascriptで計算して指定したいです。

そこで、各ボックスwidthの合計値をoffsetWidth以下なら、各ボックスは折り返さずに表示されると考え、以下htmlを作成しました。

※行頭スペースは全角です。

<html>
<head>
<style type="text/css">
#b1 {
...続きを読む

Aベストアンサー

http://d.hatena.ne.jp/onozaty/20060803/p1
http://d.hatena.ne.jp/onozaty/20060802/p1

border-right:5px black solid;
ではだめなの?

Qリンク先のJavaScriptを実行するリンク

a.htmには以下のようなJavaScriptが記載されています。

<a href="javascript:c_click(1)">test</a>

a.htmの中にはclick内の数字が1~50程度のリンクがあり、
数字に応じて異なるJavaScriptが実行されるページです。



b.htmからa.htmの上記の<a href="javascript:c_click(1)">test</a>が実行されるリンクを作ることは可能なのでしょうか。

たとえば、b.htmに以下のようなHTMLを記述することを想定しています。

<a href="a.htmのjavascript:c_click(1)">test</a>

Aベストアンサー

要件が以下の通りとします。

1. b.htm のリンクを押す
2. 遷移先または子画面として a.htm が開く
3. b.htm から渡された引数をもとに、関数 c_click が実行される
4. これ以降で、両者のやり取りは無い

この場合なら、a.htm の URL に引数を付けて実行が一番簡単です。
ブラウザによるキャッシュが利くので、即応性を求めないならこれが一番でしょう。

/* --- b.htm --- */
<a href="a.htm?q=1">画面遷移で開く</a>
<a href="a.htm?q=1" name=nameA>新しいタブで開く</a>

/* --- a.htm --- */
<script>(function(){
var s = window.location.search;
if (s && s.length > 1) {
var ps = s.substr(1).split('&');
ps.forEach(function(p){
var kv = p.split('=');
if (kv[0] == 'q') c_click(unescape(kv[1])); // c_click('1') を実現
});
}
})();</script>

もし開いた後でもやり取りがしたい場合は、ポップアップ形式の window.open なら可能ですが、最近の潮流ではセキュリティー観点から面倒なことになるのでお勧めしません。

要件が以下の通りとします。

1. b.htm のリンクを押す
2. 遷移先または子画面として a.htm が開く
3. b.htm から渡された引数をもとに、関数 c_click が実行される
4. これ以降で、両者のやり取りは無い

この場合なら、a.htm の URL に引数を付けて実行が一番簡単です。
ブラウザによるキャッシュが利くので、即応性を求めないならこれが一番でしょう。

/* --- b.htm --- */
<a href="a.htm?q=1">画面遷移で開く</a>
<a href="a.htm?q=1" name=nameA>新しいタブで開く</a>

/* --- a.htm --- */
<script>(func...続きを読む

Qjavascriptで .jpg , .jpeg , .pdfファイルであることを判定

HTMLのフォーム文で、ファイルをアップロードしてもらい、それが.jpg, .jpeg , .pdf ファイルであった場合のみ、アップロードできるような仕組みをJavascriptを利用して作成中ですが、うまく行きません

(ソース: test.php)
--ここから--
<html></body>
<SCRIPT language="JavaScript">
function mailSubmit(){
if (document.form_mail.upfile.value == "" ) {
alert (" ファイルを選択してください。");
flag = 1;
return;
} else {
if (document.form_mail.upfile.value.match(/[jpg]$/i)||(/[pdf]$/i)){
alert ("添付ファイルはJPEG,PDFに限ります");
flag = 1;
// return;
}
}
if(flag){
return false;
} else {
document.form_mail.submit();
return true;
}
}
</script>

<table>
<!-- === FORMここから === -->
<!-- <FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data> -->
<FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data onSubmit="return mailSubmit()">
ファイル選択<INPUT TYPE=file NAME="upfile" SIZE=50 VALUE=\"$upfile\">
<br>
<INPUT TYPE="button" VALUE=" 送信 " onClick=" javascript:mailSubmit() ">
<INPUT TYPE="button" VALUE=" キャンセル " onClick="javascript:history.back()">
</FORM></body>
</html>
--ここまで--
JPG,JPEG,またはPDFファイルのみにアップロードの許可を与えるにはどうしたらいいでしょうか、(大文字・小文字は不問とします)ご回答いただければ幸いです。

HTMLのフォーム文で、ファイルをアップロードしてもらい、それが.jpg, .jpeg , .pdf ファイルであった場合のみ、アップロードできるような仕組みをJavascriptを利用して作成中ですが、うまく行きません

(ソース: test.php)
--ここから--
<html></body>
<SCRIPT language="JavaScript">
function mailSubmit(){
if (document.form_mail.upfile.value == "" ) {
alert (" ファイルを選択してください。");
flag = 1;
return;
} else {
if (document.form_mail.upfile.value.match(/...続きを読む

Aベストアンサー

おはようございます。
> /[jpg]$/i
[jpg]は文字クラスになるので、括弧内の文字の集合、すなわちjかpかgが最後についているか、という事になってしまいます。ですから、
/(jpe*g|pdf)$/i
というような方法である程度チェック可能かと思います。

当然、拡張子を偽装したファイルのアップロードも可能としてしまいますので、出来ればPHP側でファイルタイプ(MIME)のチェックもした方が良いかと思います。ファイルタイプは
$_FILES['upfile']['type']
で取得出来ます。通常、jpegはimage/jpeg、pdfはapplication/pdf、application/x-pdfあたりですね。

JavaScriptだけの判断ではとても危険です(いくらでも偽装出来る)ので、PHP側で再チェックをする事をお進めします。

参考まで。


人気Q&Aランキング

おすすめ情報