- 締切済み
document.titleというものがありますが、titleタグに付
document.titleというものがありますが、titleタグに付ける名前を定義できると思うのですけど、 metaのkeywordsを定義するものはあるのでしょうか。 以下のようなtitleを付ける為の仕組みがあります。 そのscript箇所に、 document.title = "<!--{$title_text}-->" + "|" + document.title; と同じような仕組みで、keywordsを定義する事はできませんでしょうか? どなたかご教示いただけると幸いです。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title; } setEventListener(window, 'load', html_load); //]]> </script>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yyr446
- ベストアンサー率65% (870/1330)
下記javascriptの関数を作って、PHPでキーワードを $keywordにセットすれば、 function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title; keyword_write($keyword); } で出来るでしょう。 function keyword_write(keyword){ var meta=document.getElementsByTagName("meta"); for(var i=0;i<meta.length;i++){ if(meta[i].name=="keywords") meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword); } }
お礼
ご回答ありがとうございます。 自分の力では全く想像もつかず、大変助かりました。 検証してみます。 本当にどうもありがとうございました。
補足
>下記javascriptの関数を作って、PHPでキーワードを >$keywordにセットすれば、 の箇所について、追記しました。 //←追記 と書きます。 しかし、この書き方では表示ができなかったので、 手とり足とり恐縮ですが、どこが問題か教えていただけませんでしょうか? よろしくお願い致します。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; $keyword = ''; //←追記 if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); $this->assign("keyword", $title_text); //←追記 <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title; keyword_write($keyword); } function keyword_write(keyword){ var meta=document.getElementsByTagName("meta"); for(var i=0;i<meta.length;i++){ if(meta[i].name=="keywords") meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword); } } setEventListener(window, 'load', html_load); //]]> </script>