top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_920

HTMLlint:第6回。ほんとに、ちびちび進むこの道。果たして到着することはできるのか?今日はどんな事を学べるのだろう・・・ 【HTML-lint 100点への道】

 2009-05-16

また、しばらく「紹介metaboy」が続いたので、
やりかけの「学習metaboy」もやんなきゃ。


・・・ということで、
・前回やっと「ふつう」です・・・とすげなく言われた
この「創るmetaboy」のソース検証だ。


 前回は、
 ・HTMLlint:第5回。さて。まだまだ修正必要有。今日はどんなことを学べるだろうか・・・ 【HTML-lint 100点への道


 ■本日の(現在の)チェックだ。
  234個のエラーがありました。このHTMLは 44点
   ・234個のエラー
   ・44点
   はいはい、「ふつう」ね。
   一番やだな。


  追記に ▼


FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎ 目指せ! html-lint で100点への道:6回目
************************************************


それでは、順にチェックしてゆこう。


++++++++++++++++++++++++++++++++++++++++++++++++
■「9: line 284: <div> を 284行目の <p>~</p> 内に
  書くことはできません。<div>~</div> 内に <p> を
  書くことはできます。 → 解説 43」
++++++++++++++++++++++++++++++++++++++++++++++++


 ※またこれかぁ。この ダメ入れ子問題。
  多いな。

 ・該当部分のソースは、
  該当部分のソース
  あぁ、ここだね。
  素直に修正。


 他にこんなのもある。
++++++++++++++++++++++++++++++++++++++++++++++++
■「9: line 526: <link> を 524行目の <div>~</div> 内に
  書くことはできません。 → 解説 43」
++++++++++++++++++++++++++++++++++++++++++++++++


 ・これは、拙作のブログパーツ
   「禁煙カウンタ」を貼っている部分
   ではないか。駄目だな、こりゃ。
  「禁煙カウンタ」を貼っている部分
  素直に修正。
  ・この貼る部分ではなく、JavaScript側で
   コントロールしなくては
  ・他の部分も再調査して、この「順番」問題
   に対応すべく作業


 さて、減点の一番大きい原因が・・・
++++++++++++++++++++++++++++++++++++++++++++++++
■「9: line 600: <br> を 598行目の <script>~</script> 内に
  書くことはできません。 → 解説 43」
++++++++++++++++++++++++++++++++++++++++++++++++
 <script>~</script> 内に書くことはできません


 ※これねぇ。
  このFC2ブログの「年月アーカイブ」で
  「デフォルトの縦にずらずら長いのはイヤ」なので
  前にJavaScript利用してカスタマイズしたんだよな。
  ・月アーカイブ:情報量増えてきたので、レイアウト整理。でもこんな方法しかないのかなぁ ・・・ 【FC2ブログカスタマイズ】
   そのときに、おかしなソースになるな、
   とは思っていたのだけれど。
<script type="text/javascript">function changeArchiveMOnth(){ var now_archive_year=""; var temp_str="";
<!--archive-->
if(now_archive_year !='<%archive_year>'){
if(now_archive_year !=''){ temp_str += "<br />"; }
temp_str += "<%archive_year>年<br />"; now_archive_year ='<%archive_year>'; }
temp_str += "<a href='<%archive_link>' title='<%archive_year>年<%archive_month>月'><%archive_month>月 (<%archive_count>)</a>\n";
<!--/archive-->
if( document.getElementById ) {
document.getElementById('archive_month').innerHTML = temp_str;
}
}</script><ul><div id='archive_month'> </div>
</ul><script type="text/javascript">changeArchiveMOnth();</script>

 要は、
  ・FC2ブログには、
   プログラマブルな制御構造などはないので
   ・<!--archive--><!--/archive--> の
    中で、ループすることをどうにか使えないかと。
    ・(すると)このループは
     JavaScriptの中でも有効なことがわかったので、
     このようにループさせ、連結させた文字列で
     id='archive_month' の中身を一気に書き込んでいるのだが。
   ※つまり、
    ・document.write の中で、<br />
     <a> タグは
     DTD XHTML 1.0 Transitional では
     駄目ということ?

   ※今回の目的は
    ・htmllint の100点目指すわけで、
     ユーザビリティには何の恩恵も与えないかも
     知れないが、実験として模索する。


   □トライ1
    ・この部分を外部JSにしてうまく
     動くのだろうか?
     ※外部JavaScriptは、htmllintでは判定しない
      この是非や可否はともかく、として・・・
     実験!
     >> 駄目だ。
     この部分を外部JSにして
      ※やはり、<!--archive--> ~ <!--/archive-->
       は、直接書き込んだものでないとだめなようだ。


   □トライ2
    ・じゃぁ、直接JavaScriptを動かす部分はそのままで
     連結させ、外部JavaScript で、連結部分を
     一気に <br /> に書き換えてみるか。


function Go_changeArchiveMonth(strVal){
if(strVal!=''){
if( document.getElementById ) {
strVal = strVal.replace(/brbrbr/g, "<br />");
strVal = strVal.replace(/&lt;/g, "<");
strVal = strVal.replace(/&gt;/g, ">");
document.getElementById('archive_month').innerHTML = strVal;
}
}
}
changeArchiveMonth();

     ・こんな、外部スクリプトを用意して

      ※ちなみに、
       replaceメソッドで用いている /g
       最初のあたりだけでなく
       全て置き換えるためのスイッチ。


     ・FC2のソースでは


<script type="text/javascript">function changeArchiveMonth(){ var now_archive_year=""; var temp_str="";
<!--archive-->
if(now_archive_year !='<%archive_year>'){
if(now_archive_year !=''){ temp_str += "brbrbr"; }
temp_str += "<%archive_year>年brbrbr"; now_archive_year ='<%archive_year>'; }
temp_str += "&lt;a href=\"<%archive_link>\" title=\"<%archive_year>年<%archive_month>月\"&gt;<%archive_month>月 (<%archive_count>)&lt;/a&gt;\n";
<!--/archive-->
Go_changeArchiveMonth(temp_str);
}</script><ul><div id='archive_month'> </div>
</ul><script type="text/javascript" src="*****.js"></script>

      このように組み込む。

      一応エラー無く表示されているのだが、
     >> 駄目だ。
        見た目は問題ないのだが
        (うまく行ったが)
        リンクURLがうまく来ない
      ※やはり、<!--archive--> ~ <!--/archive-->
       は、直接書き込んだものでないとだめなようだ。


   □トライ3
    ・じゃぁ、変数を配列に組み入れて廻すか。
     ※しかし、なにやってんだろうね。
      こんなこと、利用者の方々には何の益も
      為さないことなんだけど。
      ・・・でもここまできたら。


     今度は、replace無しで行なう。


function Go_changeArchiveMonth(var_y,var_u,var_s){
if((var_y.length > 0)&&(var_u.length > 0)&&(var_s.length > 0)){
var now_archive_year=""; var temp_str="";
for(var i=0;i<var_y.length;i++){
if(now_archive_year !=var_y[i]){
if(now_archive_year !=''){ temp_str += "<br />"; }
temp_str += var_y[i] + "年<br />"; now_archive_year =var_y[i];
}
temp_str += " <a href=\"" + var_u[i] + "\" title=\"" + var_s[i] + "\">" + var_s[i] + "</a>";
}
if( document.getElementById ) {
document.getElementById('archive_month').innerHTML = temp_str;
}
}
}
changeArchiveMonth();

     ・こんな、外部スクリプトを用意して
     ・FC2のソースでは
<script type="text/javascript">function changeArchiveMonth(){ var montharchives_y = new Array(); var montharchives_u = new Array(); var montharchives_s = new Array(); var temp_i =0;
<!--archive-->
montharchives_y[temp_i] = "<%archive_year>"; montharchives_u[temp_i] = "<%archive_link>"; montharchives_s[temp_i] = "<%archive_month>月 (<%archive_count>)";
temp_i++;
<!--/archive-->
Go_changeArchiveMonth(montharchives_y,montharchives_u,montharchives_s);
}</script><ul><div id='archive_month'> </div>
</ul><script type="text/javascript" src="*****.js"></script>

      このように組み込む。

      ※最初は、
       <!--archive--> ~ <!--/archive-->
       のループ利用して、
       ・2次元配列でトライしたが、
        うまくゆかなかった。
     >> おぉ、やっと正常表示だ。
        html-lint のチェックでも
        エラーが減っている。


     ※しかし、実際は外部ファイルで
      document.write で、 <br />
      書き込んでいるんだよな。
      まぁ、今回は特殊ということで、
      本来はしてはいけないこと、
      よ~く、わかりました!


      あぁ、疲れた。
      今日はこのくらいにしておこう。


 それでは
 ■現在のチェック (2009/05/16 17:11)
  163個のエラーがありました。このHTMLは 63点
   ・163個のエラー
   ・63点


   なんだよ。随分減ったけど、
    まだ、63点だ。
   ・・・「ふつう」だって。


 この作業しているときも
 多くの方が見てきてくれていたようです。
 途中おかしくなったりもしたと思います。
 申し訳ございませんでした。

commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/920-b9bb72e8
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。