リンク先を動的に書き換える

Javascript

タグのリンク先を、Javascriptで動的に書き換えるスクリプトサンプルです。

 //例 リンク先をtest.htmlからtest2.htmlに書き換え
 <a href="test.html" id="test_target">テスト</a>
 
 <script>
 
    var testTarget=document.getElementById('test_target');
    testTarget.href="test2.html";
      
 </script>

リンク先は、test2.htmlになっています。

  • idの後のイコールが抜けてるスクリプトサンプルとして致命的なミスなぜ気付かないのか — oioi {2014-05-02 (金) 11:07:55}
  • ご指摘有難うございます!申し訳ありません、書き換えました。 — 中の人 {2014-05-02 (金) 20:02:16}

リモートアシスタンス利用方法

Windows トラブル解決

リモートアシスタンス利用方法

遠隔地の誰かに Windows を操作してサポートしてもらう「リモート アシスタンス」機能は、次のように使うことができます。
サポートが必要なユーザーが、次の手順でサポートしてくれる人を招待します。

1,[スタート]-[すべてのプログラム]-[リモート アシスタンス] をクリックします。
2,「[→]友人を招待する」をクリックします。
3,招待の送信手段を (1)Windows Messenger で送信 (2)メールに添付 (3)ファイルに保存から選択します。
4,(e-mail 使う場合) 招待相手のメールアドレスを記入して「[→] この人を招待する」をクリックします。
5,送信者名とメッセージを記入して「続く >」ボタンをクリックします。
6,招待の有効期限とパスワードを設定して「招待を送信」ボタンをクリックします。

招待された側 (こちらも XP を実行している必要があります) は、メールに添付されたファイルをダブルクリックします。
※この時点で双方の PC ともネットワークに接続されている必要があります。

1,招待できない場合、次の設定を確認します。 [スタート]-[コントロールパネル] から「システム」を開きます。

2,[リモート] タブをクリックし、「このコンピュータからリモート アシスタンスの招待を送信することを許可する」にチェックが入っていることを確認します。
(ここの「詳細設定」で招待した相手にデスクトップを操作させるか、見せるだけかを設定できます。)


メールソフトウェアとして Outlook Express などの MAPI クライアントが正しくセットアップされていない場合、直接メールで招待を送ることができません。
この場合、一旦招待をファイルとして保管し、お使いのメールソフトで添付ファイルとして送信してください。
FrontPage

リダイレクト Javascriptとmetaタグどちらが早い

Webサイト作成 TIPS

Web上で、あるURLにアクセスがあったとき、他のURLに転送させることを「リダイレクト」とか「HTTPリダイレクト」とか呼びますが、すぐ転送したいとき。Javascript とmetaタグに記載する二つの方法のどちらが早いか比較してみたときの話です。
ちなみに、.htaccessを使ってリダイレクトする方法もありますが、それだとディレクトリ単位になってしまうので、あまりよろしくない場合の話です。

結論から言うと、比べるとJavascriptでやった方が早いですね。
以下、使ったスクリプトです。
両方とも、HTMLの ~ タグの間に書いてください。

<meta>タグ使用例(http://www.onlineconsultant.jp/はジャンプしたいURLに変えてください。

 <meta http-equiv="Refresh" content="0;URL=http://www.onlineconsultant.jp/">

javascript使用例

 <SCRIPT type="text/javascript">
 <!--
 setTimeout("link()", 0);
 function link(){
 location.href='http://www.onlineconsultant.jp/';
 }
 -->
 </SCRIPT>
  • なんのブラウザを使ったときに、どれくらい速くなったかというデータが無いとせっかくの情報も、価値が半減 — 通りすがり {2012-03-16 (金) 05:48:47}
  • SEO的な関連として、javascriptだとbotが拾わなさそうな気がするけど一応メタタグにも入れるほうがいいんじゃないかな? — {2013-12-23 (月) 09:36:48}
  • 各検索エンジンの推奨方法は.htaccessですね。 — {2014-01-28 (火) 13:13:58}
  • google botはajaxや複雑なJSも余裕で実行していきますし、全く問題無いですね — {2014-01-29 (水) 08:31:45}
  • Location ヘッダー以外の方法をリダイレクトって呼ぶのはどうなのかね — {2014-12-09 (火) 21:49:52}
  • setTimeoutに文字列使うのが非推奨なのでsetTimeout(function() {location.href=”URL”;}, 0);とかの方がいいかもしれませんね — {2014-12-31 (水) 18:24:31}
  • setTimeout を使う必要性が判りません。即時関数ではだめなのですか? — {2016-04-07 (木) 11:44:31}
  • リファラとかGetパラメータなどがちゃんと取れないはずなのでJSでのページ遷移は気持ち悪いです(Webマーケティングに興味のない方はいいかもしれませんが — hoge {2016-09-07 (水) 09:55:26}
  • javaはjimdoで使えるからいいと思います。 — ウォーター {2017-09-12 (火) 21:14:01}

リストのマーカーの画像 位置調整

Webサイト作成 トラブル
css

さて、前回リストのCSSのブラウザ間の違いについて述べてみました。
リストのCSS ブラウザ間の違い
リストのCSS ブラウザ間の違い2

今回は、悩ましい!リストのマーカー(箇条書きの頭につく黒い点などのこと)の画像の位置調整についてまとめてみます。

まず、画像をリストのマーカーに画像を指定してみます。

 list-style-image:url(画像へのリンク)

でマーカーに画像が指定できます。
やってみましょう。

 <style type="text/css">
 <!--
 ul {
 	padding-left: 10px;
 	margin-left: 10px;
 	list-style-image:url(images/yaji_red.gif)
 }
 
 -->
 </style>
 </head>
 
 <body> 
 リストだよー。
 <table><tr>
 <td style="width:70px; background-color:#FFCC33">
 <ul class="test1">
 <li>ナルト
 	<ul>
     <li>ナルト連弾</li>
    <li>ナルトキック</li>
     </ul>
 </li>
 <li>さすけ</li>
 <li>さくら</li>
 </ul>
 </td>
 </tr></table>
 </body>
 </html>

Firefoxのスクリーンショットです。(IE6でもほぼ同じ)

ネストされているリスト(子供のリスト:ナルト連弾やナルトキックの部分)のマーカーを、できれば文章の縦位置の真ん中に持ってきたいとします。

残念ながら、これを指定する方法はないようです。[sad]
divで背景に画像を設定して、padding や背景位置の指定でなんとかするようにはいかないのです。
listタグのマーカーの位置を変更するために設けられているプロパティはlist-style-position にて、outsideかinsideを指定するしかありません。
参考:リストのCSS ブラウザ間の違い2

heightやvertical-alignを仕込んでみても、縦に長い画像をマーカーに仕込んでみても無駄です。
縦に長い画像を仕込んだ場合、マーカーの画像が終わったところからリストのコンテンツが始まります。

横方向に動かすことは、小細工でできます。
何かというと、たとえばタグなどを仕込み、そのタグの配置を指定します。
ただし、縦方向には効きません。
縦方向にマーカーを動かすことはどうやらできないようです。
コンテンツの場所を変更しても、マーカーが一緒にくっついてくるからです。
横方向に、マーカーとコンテンツを離すことができるだけです。

 <style type="text/css">
 <!--
 ul {
 	padding-left: 10px;
 	margin-left: 10px;
 	list-style-image:url(images/yaji_red.gif)
 }
 
 a{
 	display:block;
 	padding-top:20px;
 	margin-top:20px;
 	paddhing-bottom:20px;
 	margin-bottom:20px;
 	
 	padding-left:20px;
 
 } 
 -->
 </style>
 </head>
 
 <body>
 リストだよー。
 <table><tr>
 <td style="width:70px; background-color:#FFCC33">
 <ul class="test1">
 <li>ナルト 
 	<ul>
     <li><a>ナルト連弾</a></li>
     <li>ナルトキック</li>
     </ul>
 </li>
 <li>さすけ</li>
 <li>さくら</li>
 </ul>
 </td>
 </tr></table>
 </body>
 </html>

上記HTMLでナルト連弾とかいてあるところにタグを仕込み、タグに上下・左のマージンやパディングを指定したところ。

マーカーは縦方向にコンテンツをずらしてもくっついてきます。
横方向にだけ、マーカーからコンテンツを離すことができます。

リストのCSS ブラウザ間の違い2

Webサイト作成 トラブル
css

リスト

  • って便利なタグですが、ブラウザ間で動きがかなり違うので、制御しようとするととたんに厄介になります。
    ここでは、IE6と、Firefox3での挙動の違いを、まとめてみるシリーズの続きです。
    前回 リストのCSS ブラウザ間の違い

    前回リストのCSS ブラウザ間の違いにて、ブラウザ間の違いの大きな点は、リストのマーカーを設定するために、paddingを指定しているのか、marginを指定しているかが大きな違いだということを書きました。

    では、前回の続きでIEでも同じような見た目を実現すべく、marginを0にしてみます。

     <style type="text/css">
     <!--
     .test1 { 
     	padding: 0px; 
     	margin: 0px;
     }
     -->
     </style>
     </head>
     
     <body> 
     リストだよー。
     <table><tr>
     <td style="width:70px; background-color:#FFCC33">
     <ul class="test1">
     <li>ナルト
     	<ul>
         <li>ナルト連弾</li>
         <li>ナルトキック</li>
         </ul>
     </li>
     <li>さすけ</li>
     <li>さくら</li>
     </ul>
     </td>
     </tr></table>
     </body>
    

    IE6 のスクリーンショットです。
    list_ss6.png

    Firefoxのスクリーンショットです。こちらは横が変わりありませんが、上下のマージンがなくなったため、多少見た目に変動があります。
    list_ss7.png

    IE6のスクリーンショットを見て、一番上のマーカーの黒丸がなくなったのに気付いたでしょうか?
    marginを0にすると、マーカーまでなくなってしまうのです!

    こうなった状態で、たとえば”list-style-position”というスタイルをinsideにすることで、マーカーの表示はできます。
    このlist-style-positionプロパティは本来、マーカーをリストの内側に表示するのか、外側に表示するのかを指定するプロパティです。

     <style type="text/css">
     <!--
     .test1 {
     	padding: 0px;
     	margin: 0px;
     	list-style-position:inside;
     }
     -->
     </style>
      --以下は前述と同じなので省略--
    

    すると、IE6のスクリーンショットではこうなります。
    list_ss8.png

    マーカーは表示されたけれども、ネストされている(リストが入れ子になっている)部分を見てみてください。
    内容が長いと折り返されてますが、リストのマーカーが内側に入ってしまっています。
    縦にリストを表示したいという目的がある場合、これはあまり望まない表示ではないでしょうか?

    結局は、padding-left とmargin-leftを適切に設定するのが早いと思います。

     <style type="text/css">
     <!--
     .test1 {
     	padding-left: 10px;
     	margin-left: 10px;
     }
     -->
     </style>
    

    IE6のスクリーンショット
    list_ss9.png
    Firefoxのスクリーンショット
    list_ss9ff.png

    さて、今この時点で、横幅は何ピクセルでしょうか?
    答えは、87ピクセルになっています。

    それは、一番上のリストはpadding とmarginが10ピクセルにしましたが、ネストされた子供のリスト(例では・ナルト連弾 と書いてある箇所)は、まだmargin、paddingが40ピクセルになっているからです。
    どこから計算したmargin、paddingかというと、親のリストの始点からです。

    親のリストのマージンやパディング+40ピクセル+コンテンツ、のため、中身が膨らんでしまっているのです。

    例:Firebugで見た子供の

      のレイアウト
      list_ss10.png
      list_ss11.png

      親のテーブルセル

      が70ピクセルに設定されているので、本当は70ピクセルにおさまってほしいところです。

      単純に、次のように

        自体にマージンとパディングを設定してみましょう。

         <style type="text/css">
         <!--
         ul {
         	padding-left: 10px;
         	margin-left: 10px;
         }
         -->
         </style>
        

        Firefoxのスクリーンショット IE6でもほぼ変わらない

        list_ss12.png

        横幅が、70ピクセルになりました。

        続きは、リストにとってまたやっかいな問題、マーカーを画像にする点を取り上げます。
        リストのマーカーの画像 位置調整