WordPressがXSS,SOME(Same Origin Method Execution)脆弱性に対するアップデートを4.5.2で行った事を受けて、管理サイトを全てアップデートしていったのだが、この4.5.2に同梱されているjQueryが1.12になった事でエラーチェックが厳密になり、今まで動作してくれていたページ内遷移やYoutubeAPIなどが動作しなくなって困った。
(function($){ $(function() { $('a[href^="#"]:not([href$="#"])').click(function() { var href = $(this).attr('href'); var pos = $(href).offset().top; var duration = 200; $('body, html').animate({ scrollTop: pos }, duration, 'swing'); return false; }); }); })(jQuery);
jQuery1.2以降で動作するスムーズスクロール。
出典はXakuro Systemさま。
ありがとうございます。
エラーの詳細はリンク先を。
さて、ここからが本題。
上記スクリプトではページ内遷移出来ないケースがいくつかあった。
まぁ自分が悪いのだが、一応備忘録。
■ページ内遷移でドメインを入れている
例) http://mysite.com の中で、ページ内リンクを http://mysite.com#page-link などドメインを付けてリンクしていた場合、1.12では動かない。
■リンクhtmlに半角スペースを入れてしまっていた
例)
<a href=" page-link ">
phpの記述が不味く、リンクタグの属性内に半角スペースが入ってしまっていた場合、1.12では動かない。
javascriptと正規表現はホント苦手…。