中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

A要素のtarget属性とは・・・

某氏より
A要素のtarget属性はHTML4.01では存在しないので、代替策はと相談された。
普段target使わないからまったくわからなかったけど、targetは確かに存在しない。
http://www.w3.org/TR/html401/index/attributes.html

はてさてどうしたものかと思案したり相談したものの解決策は少ない。
で、とりあえず一つの解だけは見つかった。

------------------------------------

えぐい案。
元のページは一番上にもどるし、ステータスバーは偽装してるしいいのかこれ?

<html>
<body id="bod">
<script>
 document.write("<a href='#' onclick='javascript:window.open(\"http://google.com\",\"_blank\")'>りんく</a>");
</script>
<noscript>
 <a href="http://www.yahoo.com">りんく</a>
</noscript>

</body>
</html>

--------------------------------------
SCRIPT/NOSCRIPT案
確かにうまく動くけど、リンクをクリックすると元のページがおそらく再読み込みかかるので一番上に・・・


--------------------------------------
うまくいかない案

<html>
<script type="text/javascript">
function replacelink()
{
 var linka = document.getElementById("linka");
 linka.href="#";
 linka.onclick="window.open('http://google.com','_blank')";
}
</script>

<body id="bod" onload="javascript:replacelink()">

<a id="linka" href="http://www.yahoo.com">りんく</a>

</body>
</html>
--------------------------------------
こっちはnoscript状態だと普通のリンクだけど、scriptが動くならhrefとonclickを上書きする案。
でもなんかうまく動かない。

どっちにしろおいしい方法は無いみたい。

で、何でかって言う話なんだけど、おそらくアクセシビリティの観点で新しいウィンドウで開くかどうかはユーザが決めるべきっていう思想にのっとっている結果だと思う。


ちなみにHTML4や4.01の段階でLoose扱いなので、1998年から実は殺されているって言うことも判明。

皆さんとりあえず使うのやめましょ(^^

 

投稿日時 : 2004年12月29日 12:20

コメントを追加

# re: A要素のtarget属性とは・・・ 2004/12/29 13:34 ShowG/しょーぢ

多分IE限定。

----------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja-JP">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>てすと</title>
<script>
<!--
function hoge()
{
if(document.readyState == "complete")
{
linka.href = "javascript:void(0);";
linka.attachEvent("onclick", fuga);
}
}

function fuga()
{
window.open('http://google.com','_blank');
}

document.attachEvent("onreadystatechange", hoge);
//-->
</script>
</head>
<body>
<a id="linka" href="http://www.yahoo.com/">りんく</a>
</body>
</html>
----------------------------------------

かなりダメなHTMLです(^^;

# re: A要素のtarget属性とは・・・ 2004/12/29 13:39 中 博俊

かなーりダメダメですねぇ。(^^

# re: A要素のtarget属性とは・・・ 2004/12/29 13:52 ShowG/しょーぢ

そもそもHTMLでクライアントアプリを意識するなんて(小一時間

・・・

アクセシビリティを考慮したらこういうページはつくれませんな。
特に読み上げを意識したらとても作れない。
#この辺りってたくさんの人がまとめてるからわざわざ書くほどでも無いか(^^;

個人的にもtarget属性は嫌い。
別ウィンドウで開きたいときだけShift+クリックさせてくれ!って感じ。

# re: A要素のtarget属性とは・・・ 2004/12/29 15:29 じゃんぬねっと

某氏でーす。(*^-^*)
連続性が絶たれるのは確かにイヤですが、
一般人は Shift + Click を存じない方が多いです。

私は、同一サイトリンクでは、やりませんが、
外部リンクの場合は target="_blank" ってのは
多少やむを得ないような気がします。

# re: A要素のtarget属性とは・・・ 2004/12/29 15:45 ShowG/しょーぢ

“一般人”のレベルが一つのポイントだと思う。

嫁とか家族は別ウィンドウが出ると訳分からなくなるからと嫌い派。
彼らは複数のウィンドウを開いて何かをするということに利益を見出せていないのです。
というか、する必要が無いみたい(^^;

ある程度の理解レベルがないと複数ウィンドウというのは不必要なのかなーと思っています。
ただ、その理解レベルがShift+Clickできるレベルかってーと微妙。

微妙な話ですな。

# re: A要素のtarget属性とは・・・ 2004/12/29 17:42 じゃんぬねっと

うーむ、Shift+Click を周知してるとか関係なく、
人それぞれってことですね...

となると、target 属性は外しておいて、
その旨を書くようにすると親切なのかな...

http://f57.aaa.livedoor.jp/~jeanne/tips/
> 別ウィンドウで開きたい場合は、Shift を押しながらリンク先をクリックしてください。

って感じの注釈を置いとけば良いのかな...
こっちにも書いておこw
http://f57.aaa.livedoor.jp/~jeanne/link/

# re: A要素のtarget属性とは・・・ 2004/12/29 19:05 たかみちえ

 どうも、はじめまして。
 Shift+Clickという表現もブラウザに依存するので、あまりよいとは言えなさそうな気がします(とはいえOperaもFirefoxもShift同時押しですが)。
そもそもいってしまえばクリックという言葉も、HTMLとしては正しい言葉なのかななんて思ってしまいます、別媒体ではクリックなんて概念はないわけだし。

 わたしはいっさい別ウィンドウに表示するようなことはしてません(Webページ壁紙のプレビュー画面を除く)。別ウィンドウに表示させたい人はそれぞれのブラウザに応じた操作をすればいいし、そうする必要のない人や、それを知らない人はそのままで良いと思います。
 書くとしたら"別ウィンドウで開くような処理はいっさいしていませんので、必要に応じて操作をしてください。"かなぁ…。
なんでtarget要素がなくなったかといえば、そもそも"すべてを閲覧者に任せる"と言う概念があるからなわけで、その辺はすべて閲覧者にお任せしようと思ってます。

# わたしは別窓…というか別タブ表示はとても多用しますね、複数のTipsサイトを開いて並行的に見るなんてことはよくしますので。

# re: A要素のtarget属性とは・・・ 2004/12/30 0:19 甕星

私も別タブで開くことが多いかな。FireFoxの場合は、Middle Button Clickで新しいタブが開きます。実はスクロール操作中にタブを開きまくって困ることも度々・・・(^^;

# re: A要素のtarget属性とは・・・ 2004/12/30 11:04 石坂@日本ベーレー

何となく、UI・装飾と文書構造がごっちゃになったHTMLの後遺症がまだ続いている感じですね。CSSによる装飾の分離は何となく定着してきた気もしますけど。
今の解決にはなりませんけど、UIはやっぱりスマートクライアントに任せた方がよいですね。

#やっぱりHTMLもじゅうぶんにビットなんだよなぁ。

# re: A要素のtarget属性とは・・・ 2004/12/31 15:03 hir

たしかにtarget="_new"などはとてもうっとうしいです。
タブブラウザに乗り換えてから全部別タブに
飛ばしてますが。

業務webアプリでも日付入力支援のポップアップが
new windowからスタイルシートによる表示に
移行しつつあり。

http://www.w3.org/TR/html401/strict.dtd

>Authors should use the Strict
>DTD when possible, but may use the
>Transitional DTD when support
>for presentation attribute and elements is required.

使いたきゃlooseにしましょうって感じですか。

targetがないと事実上frameが使えないので
古いアプリを相手にすると困る感じです。
まあframeステって話もありますが。

# re: A要素のtarget属性とは・・・ 2004/12/31 15:51 中 博俊

スタイルシートによる表示って、どこかに隠しておいて表示するって言うことかなぁ?

# re: A要素のtarget属性とは・・・ 2004/12/31 16:25 hir

さいです。

# re: A要素のtarget属性とは・・・ 2007/12/19 19:20 oyunlar

targetがないと事実上frameが使えないので
古いアプリを相手にすると困る感じです。

# re: A要素のtarget属性とは・・・ 2008/01/11 7:57 automotive repair manual

targetがないと事実上frameが使えないので
古いアプリを相手にすると困る感じです。
まあframeステって話もありますが。

タイトル
名前
URL
コメント