グッドデザイン賞を受賞したウォーターサーバー >>

ブラウザ上のハイパーリンクをクリックすると
サイズ指定したウィンドウを表示したいのですが、
サイズ指定となるとJavaScriptを使用しないと
ダメなのでしょうか??
JavaScriptを使用してウィンドウを出すという処理
自体はわかっているのですが、<A>(アンカータグ)を
使用している為、onclickイベントで処理しようとしても
その前に<A>でアドレスと指定していないのでエラーに
なってしまいます。何かいい方法はないでしょうか?

よろしくお願いします!!!

一応、ソースを記載しておきます。

<A HREF="" onclick="output();">ハイパーリンク</A>

<script language="JavaScript">
function output() {
window.open("test.htm,"","width=500,height=600");
}
</Script>

A 回答 (4件)

ついでに


output()を使いまわせるように引数を追加しちゃいましょう。

<a href="javascript:output('test.html')">ハイパーリンク</a>

<script language="JavaScript">
function output(url) {
window.open(url,"","width=500,height=600");
}
</Script>

てな感じにしておけば、hrefの'test.html'を変えれば
output()が使いまわせますよ。
    • good
    • 0
この回答へのお礼

わざわざ発展系まで教えていただいてありがとうございます!!!

お礼日時:2005/02/09 10:47

<a href="test.html" target="_blank" onclick="


window.open('test.html', '_blank');
return false;
">here</a>

・ポイントしたときにステータスバーにこれから開くURLが表示される
・javascriptがoffの場合も考慮している
    • good
    • 0
この回答へのお礼

たしかにステータスバーにURLが表示されるのは重要なことですよね。

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

お礼日時:2005/02/09 10:49

<A HREF="#" onclick="output();">ハイパーリンク</A>



<A HREF="javascript:void(0)" onclick="output();">ハイパーリンク</A>

<a href="javascript:output()">ハイパーリンク</a>

などでどうでしょうか。
    • good
    • 0
この回答へのお礼

参考にさせていただきます!!!

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

お礼日時:2005/02/09 10:50

<a href="javascript:output()">ハイパーリンク</A>



これでどうでしょうか?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセルのハイパーリンクで他のシートを小さい大きさで表示

エクセルのハイパーリンクで他のシートを小さい大きさで表示する方法はないでしょうか?例えばsheet1のa-1のセルをクリックするとsheet2が全体の1/4のサイズで別画面で表示されるようなことですが…よろしくお願いします!

Aベストアンサー

こんにちは。

ご質問の要件は、Html コードではありませんので、VBAでも、なかなか複雑になりますね。

ThisWorkbook モジュールに貼り付けて使います。Hyperlinkが、シートを選ばない限りは、4分の1画面は出ません。今回は、細かな設定などの説明は省略させていただきます。ソースを出しておきますので、設定が分かるようでしたら、お使いください。

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
 Dim ShName As String
 Dim num As Integer, wd As Double, ht As Double
 ShName = Sh.Name
 Application.ScreenUpdating = False
 With ActiveWindow
  If .WindowState = xlMaximized Then
   .WindowState = xlNormal
   .Width = Application.Width
   .Height = Application.Height
   .Top = 1
   .Left = 1
  End If
 End With
 Sheets(ShName).Activate
 num = InStr(Target.SubAddress, "!")
 If num > 0 Then
  If Mid(Target.SubAddress, 1, num - 1) <> Sh.Name Then
   ActiveWindow.NewWindow
   Sheets(Mid(Target.SubAddress, 1, num - 1)).Activate
   With ActiveWindow
    wd = .Width
    ht = .Height
    .Width = wd / 2
    .Height = ht / 2 - 5 '5はシートタブ分
    .Top = 5
    .Left = Application.Width - ActiveWindow.Width
    .DisplayHeadings = False
    .DisplayHorizontalScrollBar = False
    .DisplayVerticalScrollBar = False
    .DisplayWorkbookTabs = False
   End With
  End If
 End If
 Application.ScreenUpdating = True
End Sub

こんにちは。

ご質問の要件は、Html コードではありませんので、VBAでも、なかなか複雑になりますね。

ThisWorkbook モジュールに貼り付けて使います。Hyperlinkが、シートを選ばない限りは、4分の1画面は出ません。今回は、細かな設定などの説明は省略させていただきます。ソースを出しておきますので、設定が分かるようでしたら、お使いください。

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
 Dim ShName As String
 Dim num As Integer, wd As D...続きを読む

Qハイパーリンクを新規ウィンドで開く設定

Excelで他のファイルを開くようにハイパーリンクを設定してますが、
リンクを張った場所をクリックするとジャンプ先のファイルが開いて、
元のファイルが閉じてしまいます。
元のページを残す場合、リンクを張った場所にポインタを合わせ右クリックし、
[ハイパーリンク]-[新しいウインドウで開く]をクリックすればOKですが、
リンク先のページを開く際に別ウィンドウで開くにはどうしたらよいでしょうか?

Aベストアンサー

保存したhtmをメモ帳で開いて
検索でリンク先のアドレスを入力し、
リンク先のアドレスの後ろに target="_blank"
と付け足してください。

Qハイパーリンクを別ウインドウで表示させたいです

Office2000です。

wordまたはexcelをベースに、ハイパーリンクでpdfやhtmファイルを別ウインドウで表示させたいのですがうまくいきません。
通常のやり方どおりハイパーリンクに開きたいファイルを指定しています。
しかし、次ページに進むようになったり、ページが表示されなかったり。

Office2000のため、ターゲットフレーム等ウインドウの指定できるようなものは見当たりません。
何が悪いのか、何を設定しないといけないのか、調べても当てはまるものがありませんでした。

すみませんが、ご指導お願いします。

Aベストアンサー

No1です
>これらをホームページにしているため
ということは、htmlファイル化してあり、
「現在のページからリンクをクリックすると、新しいウインドウでジャンプしたい」
ということでしょうか?

htmlファイルをメモ帳等で開き、<a>タグ内に target="_blank" を埋め込みます。
<a href="リンクURL">リンクの説明</a>
  ↓
<a href="リンクURL" target="_blank">リンクの説明</a>

IEの場合、新しいウインドウで開かれます。
他のブラウザでもShiftキーを押しながらクリックすれば、新しいウインドウで開かれます。
ウインドウの開き方は閲覧者の好みがありますので、ブラウザの設定をする、Shiftキーを押しながらクリックするなど必要に応じて使い分けると思います。

必ず(強制的に)新しいウインドウで開きたい(閲覧させたい)場合は、JavaScriptを利用しないとだめだと思います。
JavaScript window.open() で検索してみて下さい。サブウインドウの開き方等が見つかるはずです。
ただ、JavaScriptをオフにしている方もいるので、表示されない事もあります。

例:メモ帳などにコピペして拡張子をhtmlで保存してください(sample.html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

<script type="text/javascript">
<!--
window.onload = function (){
var node_a = document.getElementsByTagName('a');
for (var i in node_a) {
if(node_a[i].className == 'win_popup'){
node_a[i].onclick = function() {
return open_window(this.href)
};
}
}
};

function open_window(url){

window.open(url, "newpage", "width=1000,height=650,scrollbars=0,menubar=0,toolbar=0,location=1,directories=0,resizable=1");
return false;

}

// -->
</script>
</head>

<body>
<p>targetの例</p>
<table border="1" cellpadding="1" cellspacing="0">
<tbody>
<tr>
<td>target</td>
<td>リンク先</td>
<td>その他</td>
</tr>
<tr>
<td>_blank</td>
<td><a href="http://www.yahoo.co.jp/" target="_blank">YahooJAPANを開く</a></td>
<td>新しいウインドウで開く<br>開かないときはShiftを押しながらクリック</td>
</tr>
<tr>
<td>_self</td>
<td><a href="http://www.google.co.jp/" target="_self">Googleを開く</a></td>
<td>現在のウインドウで開く</td>
</tr>
<tr>
<td>未設定</td>
<td><a href="http://mozilla.jp/firefox/">MozillaJapanを開く</a></td>
<td>-</td>
</tr>
<tr>
<td>_blank</td>
<td><a href="http://weathernews.jp/" class="win_popup">ウェザーニュースを開く</a></td>
<td>サブウインドウで必ず開く</td>
</tr>
</tbody>
</table>

</body>
</html>

No1です
>これらをホームページにしているため
ということは、htmlファイル化してあり、
「現在のページからリンクをクリックすると、新しいウインドウでジャンプしたい」
ということでしょうか?

htmlファイルをメモ帳等で開き、<a>タグ内に target="_blank" を埋め込みます。
<a href="リンクURL">リンクの説明</a>
  ↓
<a href="リンクURL" target="_blank">リンクの説明</a>

IEの場合、新しいウインドウで開かれます。
他のブラウザでもShiftキーを押しながらクリックすれば、新しいウインドウで開かれ...続きを読む

Q子ウィンドウの存在確認

子ウィンドウが開いていない場合にのみ子ウィンドウを開くような下記の処理があるとします。

function OpenSubWindow()
{
if(!w.closed()){
alert('閉じろ!');
}else{
w = window.open("a.html","sub","resizable=no,scrollbars=no");
}
}

この場合、当然のことですが、変数wはelseの中で初めて初期化されるため、ifの条件でオブジェクトが存在しないことによりエラーが発生します。

でも、"sub"というname属性のウィンドウが開いているかどうかを確認したいのですが、どうすればよいのでしょうか?wを初期化する方法が何かあるのでしょうか?それとも、subウィンドウのopen/closeの状態を管理するロジックを作りこまないといけないのでしょうか?

Aベストアンサー

細かなロジックを考える必要はありませんよ。
w がオブジェクトかどうか分からない時点で w.closed を評価するのがマズイだけですから、評価の順番を変えればいいんです。

var w;
function OpenSubWindow() {
  if (!w || w.closed)
    w = window.open("a.html", "sub", "resizable=no,scrollbars=no");
  else
    alert("閉じろ!");
}

ちなみに closed はメソッドではなくプロパティですので、w.closed() ではエラーとなります。
また、既に開いているときの処理は
  w.focus();
とすれば子ウィンドウがアクティブになるのでオススメです。

Qポストバック時のDatasourceバインド処理について

いつもお世話になっております。
VS2005 FrameWork2.0にて
ASPポストバックのDatasourceの挙動について質問させて下さい。

使用コントロールはDatasourceプロパティを持っていればなんでもいいのですが、例えばデザイナで、

DropDownList.DatasourceIdに SqlDatasourceを指定し、
SqlDatasourceのSelectQueryに" Select * from Table1 "
なんて指定しておけば、いくらポストバックが発生しても
常にDropDownList.DatasourceがNullでない状態で
、なおかつSQLサーバーをプロファイルしていても
Select文の発行は初回の1回だけでした。

でも、
手動で
DropDownList.DataSource = GetDataSource1()
DropDownList.DataBind()

※GetDataSource1()は、データベースをOpenしてDataTableを返すメソッド

みたいにコード上でバインドしておくと、
次のポストバック時にDataSourceがNULLになっています。

毎ポストバック時にDataBind()を書くと、
毎回Open~Select処理が走ってしまい嬉しくありません。

手動バインドさせる場合のスタンダードな書き方ってあるのでしょうか?

こういったことがナンセンスで、
本来は
[DataObjectMethod(DataObjectMethodType.Select)]属性をつけたメソッドを用意してObjectDatasourceのSelectメソッド等でやるのがスタンダードなんだよ
といったご指摘もあれば全てお聞きしたいと思っております。

よろしくお願い致します。

いつもお世話になっております。
VS2005 FrameWork2.0にて
ASPポストバックのDatasourceの挙動について質問させて下さい。

使用コントロールはDatasourceプロパティを持っていればなんでもいいのですが、例えばデザイナで、

DropDownList.DatasourceIdに SqlDatasourceを指定し、
SqlDatasourceのSelectQueryに" Select * from Table1 "
なんて指定しておけば、いくらポストバックが発生しても
常にDropDownList.DatasourceがNullでない状態で
、なおかつSQLサーバーをプロファイルしていても
Select...続きを読む

Aベストアンサー

いくつかの条件がからんでいますが、一般的にということで。。

ポストバック時、BindControlのDataSourceプロパティはnullになっていますが、通常、ViewStateをonにしていれば、BindControl自身の値(RepeaterであればItemTemplate生成のテキストボックスなど)がViewStateにドカンと保持されて、自動的に再表示されますので、再度DataBindする必要はないと思います。

自分は、ASP.NET 2.0 Web Formであれば、
初回時:データソースから読込み、DataBind実行
ポストバック時:追加・削除・更新の場合のみ、DB操作を行ってから読込み、DataBind実行
といった感じで統一しています。

ただ、毎回DBから読み込む方式と、ViewStateに値を埋めておいて送信する方法の比較ですが、DBドライバ側のキャッシュ機能などを考えれば、デカいViewStateより再SELECTのほうが早いような感じがします。

また、新しいASP.NET MVCではもはやViewStateもPostBackも使っていません(やっぱり)。
SQL DataSourceもObject DataSourceもキレイサッパリなくなって、「LINQかEntity Frameworkを使え」ということのようです。

いくつかの条件がからんでいますが、一般的にということで。。

ポストバック時、BindControlのDataSourceプロパティはnullになっていますが、通常、ViewStateをonにしていれば、BindControl自身の値(RepeaterであればItemTemplate生成のテキストボックスなど)がViewStateにドカンと保持されて、自動的に再表示されますので、再度DataBindする必要はないと思います。

自分は、ASP.NET 2.0 Web Formであれば、
初回時:データソースから読込み、DataBind実行
ポストバック時:追加・削除・更新の場合のみ...続きを読む

QASP.Net 別ウィンドウを開く・ジレンマ編

大変お世話になっております。

現在別ウィンドウを開くのに
ClientScript.RegisterStartupScript(Me.GetType, "OpenNewWindow", "<script language=""javascript"">window.open('URLを指定', 'TARGET');</script>")
を使用しております。

ですが上記の場合だとjavascriptの為、ASP.Net で使用できる ~(チルダ)が使用できず、ルート表示ができません。

Response.Redirectで記述すると、ターゲットが指定できず、ウィンドウを上書きする形になってしまいます。

足して2で割れればいいのですが、javascriptで ~(チルダ)のようなルート指定ができる方法、もしくは、Response.Redirectでターゲットが指定できる方法など、もしあるようでしたら、お教えいただけますよう、何卒ご教授くださいませ。

上級者の方は、このジレンマをどのように克服されているのか是非ともお教えくださいませ。

Aベストアンサー

Response.Redirect は、ブラウザに HTTP のステータスコード 302(だったはず)を返すものです。
このとき、遷移先のURLを指定することしかできません。
ブラウザ側もそれ以上のことはできないです。

ASP.NETとはいってもブラウザを使う以上、基本はHTTPおよびHTMLです。
そこでできる以上のことはできません。
自分が実装したコードはHTTPやHTMLだとどうなるのか、という観点から考えると、できること
できないことがはっきりしますし、なぜできないかという部分も理解できるかと思います。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

QWebページ上のボタン等の位置を移動したい。

こんにちわ。
いまASP.NETのWebフォームにパネルを置いて,その上にボタンなどのオブジェクトを配置しようとしています。
ところがフォームに直接ボタンを配置するときは,
任意の位置に配置できるのですが,
パネルの上だと任意の位置に配置できません。
VBのようにプロパティでx/y座標を指定しようと思ったのですが,
それらしいプロパティが見当たりません。
どうすれば任意の位置に配置できるでしょうか?
教えてください。よろしくお願いします。

Aベストアンサー

#1 です。

WebForm で何もコントロールを選択していない状態か、新規の WebForm で [レイアウト]-[位置]-[自動配置オプション] を選択。
<オプション> ダイアログの左側 [HTML デザイナ]-[CSS 配置] が開いてる状態になりますので、右側の配置オプションで [ツールボックス、貼り付け、またはドラッグ・・・] にチェックを入れて「絶対配置」を選択して [OK] をクリック。
コレ以降フォームに貼り付けたコントロールは絶対配置になりますので好きな場所に移動できます。

って方法もありますね。

QInner join と Left joinの明確な違いは?

Inner join と Left joinの違いがよくわかりません。
教えてください。

Aベストアンサー

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3           ...続きを読む

QPDFファイルを開くとき拡大率100%に固定したいのですが

HPからのリンクでPDFファイルに飛ぶようにしたのですが、画面にあわせて拡大されてしまい、たいへん大きな字ででてくるので困っています。
アクロバットリーダーの設定の問題なのでしょうか?それとも、PDFファイルを作ったときに設定できるのでしょうか?
ヘルプを読んでみましたがよくわかりませんでした。ご存知の方いらっしゃれば教えてください。

Aベストアンサー

#1回答者です。

おっしゃるとおり、回答No.1の設定はAdobe Readerの設定です。この設定をしたPCでは次回以降100%で表示されるということです。

他のPCでの表示は、その「他のPC」でのAdobe Readerの設定で表示されることになります。

Adobe Readerの標準設定は確か「全体表示」ですので、何も設定しない状態で表示すると横幅一杯に拡大(あるいは縮小)して表示されることになります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング