jquery.slideViewerPro.1.5.jsをXHTML5(application/xhtml+xml)対応にする
スポンサードリンク
今どきで言うとdocomoのサイトのトップページのようなギャラリーができるjQueryプラグインの、jQuery slideViewerProというのがあります。
jQuery slideViewerPro 1.5 [www.gcmingati.net]
ところが、このjQueryプラグインは、サイトがXHTMLで、MIMEタイプがapplication/xhtml+xml(XHTMLとして処理するにはこのMIMEタイプが必須です)の場合、うまく動かない。
というわけで奥さん、パッチです!
Filename: jquery.slideViewerPro.1.5.js.patch
*** jquery.slideViewerPro.1.5.js.old  2012-02-22 23:08:17.000000000 +0900
--- jquery.slideViewerPro.1.5.js  2012-02-22 23:09:02.000000000 +0900
***************
*** 23,30 ****
    }
  });
  jQuery(function(){
!    jQuery("div.svwp").prepend("<img src='images/svwloader.gif' class='ldrgif' alt='loading...'/ >"); //change with YOUR loader image path
! });
  var j = 0;
  jQuery.fn.slideViewerPro = function(settings) {
      settings = jQuery.extend({
--- 23,30 ----
    }
  });
  jQuery(function(){
!    jQuery("div.svwp").prepend('<img src="images/svwloader.gif" class="ldrgif" alt="loading..." />'); //change with YOUR loader image path
! });
  var j = 0;
  jQuery.fn.slideViewerPro = function(settings) {
      settings = jQuery.extend({
***************
*** 97,103 ****
        jQuery(this).next().after("<a href='#' class='left' id='left" + j + "'><span>"+settings.leftButtonInner+"</span><\/a><a href='#' class='right' id='right" + j + "'><span>"+settings.rightButtonInner+"<\/span><\/a>");
        jQuery(this).find("li").each(function(n) {
!             jQuery("div#thumbSlider" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'><img width='"+ thumbsWidth +"' height='"+ thumbsHeight +"' src='" + jQuery(this).find("img").attr("src") + "' /><p class='tmbrdr'> <\/p><\/a><\/li>");
        });
        jQuery("div#thumbSlider" + j + " a").each(function(z) {
--- 97,103 ----
        jQuery(this).next().after("<a href='#' class='left' id='left" + j + "'><span>"+settings.leftButtonInner+"</span><\/a><a href='#' class='right' id='right" + j + "'><span>"+settings.rightButtonInner+"<\/span><\/a>");
        jQuery(this).find("li").each(function(n) {
!             jQuery("div#thumbSlider" + j + " ul").append('<li><a title="' + jQuery(this).find("img").attr("alt") + '" href="#"><img width="'+ thumbsWidth +'" height="'+ thumbsHeight +'" src="' + jQuery(this).find("img").attr("src") + '" /><p class="tmbrdr"> </p></a></li>');
        });
        jQuery("div#thumbSlider" + j + " a").each(function(z) {
要は、プラグインが挿入しようとしているHTMLは、XMLの文法的に間違っているから入れられないというのです。
パッチ前半の部分は、XMLとしてはimg要素は<img src="~" />と書かなくてはいかんということで、後半の部分は、XHTML5だと文字実体参照として定義されている文字が極端に少なく、  というのもXHTML5だとエラーになるので、数値文字参照でノーブレークスペースのコードを直接指定するということです。
こんなに苦労せずとも、ウェブサーバが吐き出すときのMIMEタイプを、application/xhtml+xmlから、text/htmlあたりにすると解決なんですけれども、XHTML5を使っているとはいえなくなるよね。
ともかく、XHTML5として解釈されていると、JavaScriptから挿入するHTMLもXHTML5に矛盾しないようにしなくてはいけないです。めんどくさいが気をつけましょう。
投稿 大野 義貴 [XHTML/XHTML5] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3870






![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


 
                  
コメントする