人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptで開くウインドウに関しての質問です。
リンクをクリックした際に、ウインドウの有無を確認させてください。なければ普通に開くよう、既に開いているならそのウインドウに表示されるようにしたいのです。
下記は現在のソースですが、これでは延々とウインドウが開いてしまいます。
できればソースを丸ごと書いていただけるとうれしいです。よろしくお願いします。

---HEAD---
<SCRIPT language=”JavaScript”>
<!--HPB_SCRIPT_CODE_40
// _HpbJumpURLinNewWindow: 新規ウィンドウを開いて指定したURLにジャンプします。
//
function _HpbJumpURLinNewWindow(url)
{
if (url != ’’)
{
window.open(url, ’_blank’,”scrollbars=yes,width=620,height=600,top=20”);
}
}
//--></SCRIPT>

---BODY---
<A onclick=”_HpbJumpURLinNewWindow(’01.htm’);” href=”javascript:void(0)”>01</A>

●質問者: cepek
●カテゴリ:コンピュータ
✍キーワード:BODY JavaScript open TOP URL
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● stnet
●15ポイント

http://www.hatena.ne.jp/1122985043

人力検索はてな - JavaScriptで開くウインドウに関しての質問です。 リンクをクリックした際に、ウインドウの有無を確認させてください。なければ普通に開くよう、既に開いているならそのウ..

window.open(url, ’hoge’,”scrollbars=yes,width=620,height=600,top=20”);


変えた1行のみ示します

_blankのところを適当な名前に変更すれば良いかと

◎質問者からの返答

いいえ、違うのです。

この_blankはページ内のリンク個所を全て同じ大きさで開くためにこうしてあるので、ここをかきかえるとその適当な名前にしたものしか開かれなくなりますよね?それでは意味がないのです。


2 ● ito-yu
●15ポイント

http://www.red.oit-net.jp/tatsuya/java/winopen.htm

?C?k???????JavaScript?u??

window.openの第2引数に「_blank」をしていすると、新しいウィンドウに開く、という意味になります。ですので、延々ウィンドwが開く…というのはあなたの指定したとおりの動作です。

で、答えは、ウィンドウの名前を指定して開く、です。以下の「hoge」のように。


window.open(url, ’hoge’,”scrollbars=yes,width=620,height=600,top=20”);

◎質問者からの返答

一番の方と同じ回答ですね。

ではHEAD部分を

<SCRIPT language=”JavaScript”></p> <p> <!--HPB_SCRIPT_CODE_40</p> <p> // _HpbJumpURLinNewWindow: 新規ウィンドウを開いて指定したURLにジャンプします。</p> <p> //</p> <p> function _HpbJumpURLinNewWindow(url) </p> <p> {</p> <p> if (url != ’’)</p> <p> {</p> <p> window.open(url, ’01.htm’,”scrollbars=yes,width=620,height=600,top=20”);</p> <p> window.open(url, ’02.htm’,”scrollbars=yes,width=620,height=600,top=20”);</p> <p> window.open(url, ’03.htm’,”scrollbars=yes,width=620,height=600,top=20”);</p> <p> }</p> <p> }</p> <p> //--></SCRIPT>

のようにすれば実現できると言うことでしょうか?

ちょっとやってみますね。

やってみましたがウインドウ自体が開かなくなってしまいました。失敗のようです。


3 ● dungeon-master
●20ポイント

http://www.hatena.ne.jp/ダミー:detail]

1番の方のやり方でいいと思います。


function _HpbJumpURLinNewWindow(url,windnam)

{

if (url != ’’)

{

window.open(url, winnam,”scrollbars=yes,width=620,height=600,top=20”);

}

}


としておけば、


<A onclick=”_HpbJumpURLinNewWindow(’01.htm’,’window01’);” href=”javascript:void(0)”>01</A>


のようにして、好きなWindow名に固定できます。

特定のURLどうしは同じWindowを共用するということもできますね。

◎質問者からの返答

さっそく書き換えて試してみたのですが上手く行きません。

リンク部分を書き換えたところは「ページが表示されません」になって、書き換えてないところは全く動かなくなりました。

うーん、これは無理なお願いだと言うことなのでしょうか……。


4 ● obache
●20ポイント

http://msdn.microsoft.com/library/default.asp

ウインドウ名に . が入っているとダメっぽいので、こんなのでどうでしょう?

既存のウインドウだと、ポップアップしてくれないので、forcusもしています。


<html>

<head>

<SCRIPT language=”JavaScript”>

<!--HPB_SCRIPT_CODE_40

// _HpbJumpURLinNewWindow: 新規ウィンドウを開いて指定したURLにジャンプします。

//

function _HpbJumpURLinNewWindow(url)

{

if (url != ’’)

{

win = window.open(url, url.replace(’.’, ’_’) ,”scrollbars=yes,width=620,height=600,top=20”);

win.focus();

}

}

//--></SCRIPT>

</head>

<body>

<A onclick=”_HpbJumpURLinNewWindow(’01.htm’);” href=”javascript:void(0)”>01</A>

</body>

</html>

◎質問者からの返答

スクリプト部分をコピーペーストして試してみたんですけど、ダメでした。新しいウインドウが開いてくれないです……。


5 ● fraise
●50ポイント

http://blog.livedoor.jp/

livedoor ブログ(Blog) - 無料/有料ブログ作成サービス

”_blank”の部分を”window1”にすると、

他にウィンドウが開いていなければ新規ウィンドウが、

既に開いているウィンドウがあればそちらに表示されるようになりますよ。

◎質問者からの返答

バッチリ上手くいきました!

どうもありがとうございます♪

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ