Moral Hazard!!

ドラマーが音楽やホームページやガラクタを作るよ。

WordPressを4.5.2にアップデートしたら同梱のjQuery1.12で構文エラー祭り

No Comment wordpress,

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と正規表現はホント苦手…。