• 締切済み

JavaScript(ジャバスクリプト)で本文中からヘッダーにtitleを挿入する

ホームページを、とあるソフトを使用して作っています。 これがなかなか融通の利かないソフトで、<head>~</head>内の項目 が全くいじれないという仕様になっています。さらに、トップページ以外のtitleが全部メニューのリンク文字と同じになるというありさまです。 そこで、body中で何とかしてtitleを変更して JavaScript(ジャバスクリプト)で本文中からヘッダーにtitleを挿入する方法を知りました。 <script type="text/javascript"> <!-- var header = document.getElementsByTagName("head").item(0); var style = document.createElement("link"); style.rel = "stylesheet"; style.type = "text/css"; document.title = "ここにタイトル"; header.appendChild(style); // --> </script> というJavaScriptを使うと、ヘッダーの<title>~</title>に書いた(自動的に挿入された)タイトルではなく、JavaScriptに書いたタイトルが適用されるようです。ここまではなんとかできましたが、ソース見てみると当然<head>内の<title>~</title>はリンク文字のままなのですが、IEなどの一番上に表示される文字はJavaScript内に書いたものになっています。 ここで疑問がわきました。 (1)はたしてこれはSEO的にはどちらのtileが優先(?)されるのでしょうか? (2)また、検索した際の表示される文字はどちらに??? (3)SEOスパムになったりしないのか? 当方、JavaScriptのことがはっきり言ってまったくわかりませんもので、ほぼコピペしてるレベルです・・・。なので変な内容になっていましたらすいません。JavaScriptとSEOに精通したすごい方いらっしゃいましたら宜しくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

#3です。 私の言葉が足りなくて、また意味が通じなかったようです。 >cgiでガチガチに組んであるローカルで動く~~ それって、まさかWeb上でダイレクトにHTMLソースを吐き出すソフトではないですよね? SEOを気になさっているのですから、HTMLファイルが存在するものと思いますが…(前者であるなら、そもそもSEOを気にしても意味がないので) #3の後半で書いたことは、HTMLファイルが存在するのであれば、それらをアップする前にタイトル部分を修正しておくのが本来の姿勢ではないかということです。 ファイル数が数十くらいであれば、手動でやっても1時間程度の作業量だと思いますので(環境にもよりますが)、それこそ『SEOが重要である』なら、その程度の作業量はどうということもないでしょう。 ファイルが数百もあって大変であるというなら、対照表を作成して自動で修正変換させる方法をとればよいのではないかと書いたつもりです。 (もともとのソフトを改造するなどは、できれば良いのはあたりまえのことなので、回答として記すつもりはありません。) 上でいう修正は、もちろんローカルに修正するという意味です。 また、自動変換するにしても、<title>~</title>部分を入れ替えるだけなので、別にソフトを作成したところで大した手間ではないということも考慮して、上記のような回答をさせていただきました。 「◇素朴な疑問」の意味は、そのソフトがHTML編集用ソフトであるとするなら、上記のように手動でタイトル部分だけ修正したHTMLソースを、そのソフトを利用してコンテンツを修正した場合に、出来上がるHTMLソースのタイトルは修正後のタイトルのままになるのかあるいは強制的に元のタイトルに変更されてしまうのだろうかということです。 将来ソースを修正する可能性を考慮すると、この挙動がどうなるかによって影響が変わってくると思われますので… >上記の理由からHTMLはもちろん、.cgiや.pl等のプログラムも読み込ま >せることができません。 そのソフトを使って作成したHTMLファイルを修正したいときは、HTMLファイルを読込んで修正するのではないのでしょうか? あるいは、ソフトで作成している元データファイルを修正して、新たなHTMLファイルを吐き出すという機能しかないのかな? ソース作成用の、元データをローカルに修正することは不可能なのでしょうか?タイトルは可変なのでしょうから、そのデータの中にタイトルのデータもあるのではないかと想像されますが…

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#1です。 どうも意味が通じていないみたいですね。 >タイトルをSEOのため変更する必要があるということです。 「変更の必要はない」と記した覚えはありませんが? javascriptで変更したいのなら、『別に作るのではなくて(作るからダブってしまうので)、変更をすればよいのではないか』と言う意味で、#1では、その方法も合わせて書いたつもりですが? >>SEOではどうなるのかは知りませんが、~ と#1で書きましたが、変更の手段としてjavascriptを選定した時点で、ソースのHTMLのtitleはもとのままでおくことになってしまいます。 検索ロボットがソースを読んだ時に、スクリプトの解析までしてくれるとはあまり想像できないのですが…(←このあたりは、よく存じておりません) それなので、もとのままの可能性が高くはないでしょうか? -------------------------------------------------- #1では、あえて書きませんでしたが、 SEOの心配をするのなら、スクリプトで(読み込み時に)変更するのではなく、ソースファイルを変更する手段を検討するのが一番ではないでしょうか? ご使用中の(おかしな?)ソフトをどうしても手放すことができず、また、手動で書き換えるのも大量すぎて大変というのなら、「ファイル名-タイトル」の対応表を作っておいて、自動でやらせても宜しいかと。 ◇素朴な疑問  個別に修正したソースをそのソフトで読込むとどうなるのだろうか?

taketch_tc
質問者

補足

>「変更の必要はない」と記した覚えはありませんが? これは失礼!もともとのタイトルを変えれば確かにSEO的には一番よいですね。 しかし、たとえば 「お問い合わせフォーム - 池田耳鼻咽喉科」、 「プライバシーポリシー - 池田耳鼻咽喉科」、 「サイトマップ - 池田耳鼻咽喉科」 ・ ・ ・ といった<title>のページを作っていこうとしたときに、前ページ共通メニューのリンク文字が ■お問い合わせフォーム - 池田耳鼻咽喉科 ■プライバシーポリシー - 池田耳鼻咽喉科 ■サイトマップ - 池田耳鼻咽喉科 ・ ・ ・ というようになってしまうので、変だ。だからといって ■お問い合わせフォーム ■プライバシーポリシー ■サイトマップ といった感じのページが出来てしまっても困るわけです。 という考えが頭にあったのでそういう答えになりました。どうもすいませんでした。 >検索ロボットがソースを読んだ時に、スクリプトの解析までしてくれるとはあまり想像できないのですが…(←このあたりは、よく存じておりません) なるほどたしかにその通りですね!あたりまえといえば当たり前なことでしたw >個別に修正したソースをそのソフトで読込むとどうなるのだろうか? cgiでガチガチに組んであるローカルで動くCMSみたいなソフトで、CMSといってもMTみたいにデザインが自由ではなくてほぼテンプレートで自動生成されるソフトです。そのため、ヘッダーは前ページ前出の<title>以外は完全固定で、.cgiや.plファイルの中をいじるしか方法がないのですが、.cgiとかの知識がない上に、卸のメーカーから改造を禁止されているため独自の仕様にすることができません(ソフト名は、仕入れている立場上あかせません。)。 個別に修正したソースとは何のことをさしているのか解りませんが、上記の理由からHTMLはもちろん、.cgiや.pl等のプログラムも読み込ませることができません。(body内はhtml対応の場所があります。対応していないところもありますが。) ただ、それでもむりやり改造しちゃえば便利になるんでしょうね! できればそうしたいです。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

質問者さんは、javascriptには素人だがSEOについては詳しいという 立ち位置なのでしょうか? >(1)はたしてこれはSEO的にはどちらのtileが優先(?)されるのでしょうか? >(2)また、検索した際の表示される文字はどちらに??? 上記2件は、ともに元のタイトルが優先されると考えるのが妥当でしょう。 >(3)SEOスパムになったりしないのか? なる可能性は否定できません。すくなくとも事実上の偽装をしている わけですから・・・ >とあるソフト たんに、ソフトの使い方が間違っているような印象を受けましたが もしくはよほどなにかに特化したソフトなのでしょうか?

taketch_tc
質問者

補足

>質問者さんは、javascriptには素人だがSEOについては詳しいという 立ち位置なのでしょうか? 「私はSEOには詳しいのですが~」と付け足さなかっただけです。 どのくらいのレベルなのかは、ここでは問題ではないと考えております。 >上記2件は、ともに元のタイトルが優先されると考えるのが妥当でしょう。 そうですね、その理由をjavascriptに詳しい方にお聞きしたかったのです。 >たんに、ソフトの使い方が間違っているような印象を受けましたが もしくはよほどなにかに特化したソフトなのでしょうか? このソフトに関しては、どこで何を聞いてもみなさんそういいます。 つまり、そういうソフトなんです。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

SEOではどうなるのかは知りませんが、わざわざタイトルを複数生成するようなことをせずに、単に書き換えればよいのではないでしょうか?  document.title = "タイトル"; で、可能なはずです。

taketch_tc
質問者

補足

解答ありがとうございます。 >わざわざタイトルを複数生成する わざわざというか、先に記述したように自動的に「トップページ以外のtitleが全部メニューのリンク文字と同じになる」ため、タイトルをSEOのため変更する必要があるということです。 例えばメニューに「会社概要」とつくった場合、そのページのタイトルも「会社概要」になってしまうため、変更する必要があるということです。(titleはSEOでは重要な役割を担います)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HPで各頁に共通したヘッダーhtml全部をつけたい

    ホームページで各ページに共通したヘッダーを JavaScriptのdocument.write()を利用してつけようとしています。 OSはwindows Xpで、制作ツールは、alphaEDITを使用しています。 1.「header.js」ファイルを用意 document.write("<header.html>header"); 2.「index.html」を用意 <html> <head></head> <body> <script language="JavaScript" src="header.js"></script>   中身 </body> </html> 3.スタイルシートsample3.cssを用意 4.header.html を用意 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>ヘッダー</title> <meta content="text/html; charset=shift_jis" http-equiv="Content-Type"> <link rel="stylesheet" type="text/css" href="sample3.css"> <script language="JavaScript" src="func.js"></script> </head> <body> (かなり長いので省略) <p>&nbsp;</p></body></html> これで「index.html」を実行しますと、   header    中身 と表示されます。 headerという文字ではなく、header.html 全部を表示し、かつスタイルシートも反映させたいのですが、どうすればいいですか? 教えて下さい。 参考にしたURL 各ページに共通したヘッダー(フッター)をつける http://tagland.net/technique/common_header.html

  • ジャバスクリプトが作動しません。

    初めまして、素人なので的外れな質問だったら恐縮です。 以下のようにジャバスクリプトを2つ記述しましたが、後ろに記述した1つしか作動しません。 記述の順番を入れ替えても、やはり後ろに記述した方しか作動しません。 何が悪いのか、どなたか教えて頂けますでしょうか? <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" /> <title>ホームページテンプレート</title> <meta name="description" content="説明を入れます" /> <meta name="keywords" content="キーワード" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/script.js"></script> <link href="css/gallery11.css" rel="stylesheet" type="text/css" media="screen" /> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/effects.js"></script> <script type="text/javascript" src="js/glider.js"></script> <script type="text/javascript"><!-- Event.observe(window, "load", function(){ new Glider("album1", { duration:1.0 } ); }); // --></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var setImg = '#viewer'; var fadeSpeed = 1500; var switchDelay = 5000; $(setImg).children('img').css({opacity:'0'}); $(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed); setInterval(function(){ $(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg); },switchDelay); }); </script> </head>

  • JavascriptからJavaへの変え方

    Javascriptで作ったものをJavaにしないといけなくなったのですが 私はJava初心者でまったくわかりません。 色々ネットで調べてみたのですが、どうも難しくて理解することができませんでした。 下にJavascriptで作ったものを載せてるのですがどなたかやり方を教えてもらえないでしょうか? <html> <head> <title>サンプル</title> <script type="text/javascript"> function jikoku() { dd = new Date(); document.F1.T1.value = dd.toLocaleString(); window.setTimeout("jikoku()", 1000); } </script> <script type="text/javascript"> mes = new Array(5); mes[0]="0"; mes[1]="1"; mes[2]="2"; mes[3]="3"; mes[4]="4"; date=(new Date()).getHours(); if( 0 <= date && date <= 5 ){ document.write(mes[0]); } else if( 6 <= date && date <= 10 ){ document.write(mes[1]); } else if( 11 <= date && date <= 16 ){ document.write(mes[2]); } else if( 17 <= date && date <= 19 ){ document.write(mes[3]); } else{ document.write(mes[4]); } </script> <script type="text/javascript"> function Random() { var kazu = Math.random(); kazu = kazu*100; kazu = Math.ceil(kazu); if( kazu<=9 ) document.write('<br/>○1<br/>'); else if( kazu<=19 ) document.write('<br/>○2<br/>'); else if( kazu<=29 ) document.write('<br/>○3<br/>'); else if( kazu<=39 ) document.write('<br/>○4<br/>'); else if( kazu<=49 ) document.write('<br/>○5<br/>'); else if( kazu<=59 ) document.write('<br/>○6<br/>'); else if( kazu<=69 ) document.write('<br/>○7<br/>'); else if( kazu<=79 ) document.write('<br/>○8<br/>'); else if( kazu<=89 ) document.write('<br/>○9<br/>'); else document.write('<br/>○10<br/>'); } Random() </script> <script language="JavaScript"> var imglist = new Array( "sample1.jpg", "sample2.jpg", "sample3.jpg", "sample4.jpg" ); var selectnum = Math.floor((Math.random() * 100)) % imglist.length; var output = "<img src=" + imglist[selectnum] + ">"; document.write(output); </script> </head> </html>

  • java scriptで読み込むtxtでリンクする

    java scriptを使って外部テキストデータをhtml内に表示させることはできたのですが、そのテキストからさらに別ページへのリンクを貼る方法はあるでしょうか? ■java script内 var data = [ [2010.12.12,ここにコメント], [2010.11.11,'ここにコメント'], [2010.10.10,'ここにコメント'] ]; ※ここにコメントの全文または一部分をリンクさせたいです。 ■html内 <script type="text/javascript" src="data.js"></script> <script type="text/javascript"> for(var i=0;i<data.length;i++) document.write(data[i][0]+'&nbsp; &nbsp;'+data[i][1]+'<br>'); </script> よろしくお願いします。

  • JavaScriptでエスケープ。<script

    JavaScriptで、下記文字列(<script~</script>)を変数に入れ、処理後にdocument.writeしたいです。 <script type="text/javascript" src="http://hoge.jp/s/"></script> どのようにエスケープしたら良いでしょうか?

  • ジャバスクリプトについて質問です。

    ジャバスクリプトでテキストエリアに入力した文字数を表示したいのですが半角数でカウントは出来ませんか? <html> <head> <title>チェック</title> <script type="text/javascript"><!-- function tyek( str ) { document.getElementById("inputlength"). innerHTML = str.length + "文字"; } // --></script> </head> <body> <textarea cols="40" rows="9" onkeyup="tyek(value);"></textarea> <p id="inputlength">0文字</p> <br> </body> </html> 上記の設定では全角も一文字、半角も一文字でカウントされます。 例 aあ ⇒2文字 これを半角一文字、全角二文字という風に設定したいのですがどうすればいいのでしょうか?まだスクリプトを勉強しだしたばかりでよく分かりません… 回答の方宜しくお願い致します。

  • javaスクリプトでリンク付のスクロールテキストを作成したいのですが、

    javaスクリプトでリンク付のスクロールテキストを作成したいのですが、困っております。 参考サイトを探し、下記の状態まで作成しております。 <html> <head> <script language="JavaScript"> <!----- var msg = "テキスト"; msg = msg + "     "; msg = msg + "テキス2"; msg = msg + "     "; var speed = 200; function textDisp(){ msg = msg.substring(1,msg.length) + msg.substring(0,1); document.form1.text1.value = msg; setTimeout("textDisp()",speed); } var winTarget = "_self"; var url = "http://www.yahoo.co.jp/"; function textlink(){ open(url, winTarget); } //-----> </script> </head> <body bgcolor="white" onLoad="textDisp();"> <form name="form1"> <input type="text" name="text1" size="60" onclick="textlink();" style="cursor:hand;border:none;color:#ff3399;" onMouseover="this.style.color='#ffcc00'" onMouseout="this.style.color='#ff3399'"> </form> </body> </html> 表示時に”テキスト”と”テキスト2”を独立してそれぞれ、違うリンク先に飛ばすには どのようにすればよろしいでしょうか? また、空白をのぞき、リンク部分だけに下線をつけたいです。 CSSで指定をすると文字から空白まですべてに下線が付いてしまいます。 説明が悪いかもしれませんが、もしお分かりになる方おられましたら、参考サイトでも かまいませんのでお教えいただけますと幸いです。

  • java script

    java script マウスに追従する 画像について。 実装はできるのですが、こういった事象で困っています。 「縦スクロールに対して追いついてこない」 「1スクロール分したに移動するたびにおいてきぼりになる。」 このサイトも同じ事になってしまってます。 http://ameblo.jp/ma-reete/entry-10445768523.html という事です。 以下、スクリプトでは間違っているのでしょうか。 回答お願いします。 (当方IE8試用、FFではみれないようですね。) <script language="JavaScript"><!-- function moveImage() { x = event.x; y = event.y; document.getElementById("myIMG").style.left = x; document.getElementById("myIMG").style.top = y; } // --></script> <link href="style.css" rel="stylesheet" type="text/css" /></head> <body onMousemove="moveImage()"> <!--mouse 画像 start--> <IMG src="image/common/mika002.gif" id="myIMG"> <!--mouse 画像 start-->

  • ジャバスクリプトが動かない

    Windows7 64ビット IE9 次のスクリプトでボタンを押しても反応しません。 どこがおかしいのでしょうか。教えてください。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta content="text/html; charset=Shift_JIS" http-equiv="content-type"> <title>貯血スケジュールの作成</title> <script language="JavaScript"> <!-- function kotae(){ var kai = 37; alert(kai); } //--> </script> </head><body> <h3>問題</h3> 16+21= <button onclick="kotae()">答えを見る</button> </body></html>

  • ジャバスクリプト

    コピペで<body>~</body>に入れてるのですが出来ません。背景に画像を降らせたいのですが…Yahooジオシティーズで作ってます。全然無反応で…何故!? <SCRIPT LANGUAGE="JavaScript1.2"> <!-- var no = 30; var speed = 22; var snowflake = "降らせる画像のURL"; var ns4up = (document.layers) ? 1 : 0; var ie4up = (document.all) ? 1 : 0; ~中略~ --> </script>

このQ&Aのポイント
  • 釜の掃除をしたら、縫っている途中で内釜がズレて縫えなくなってしまいました。
  • 製品名:chariot 250 EL619
  • 質問内容:釜の掃除後内釜を取り付け縫ってみると、縫っている途中で内釜がズレて縫えなくなってしまいました。お使いの環境や接続方法について教えてください。
回答を見る

専門家に質問してみよう