###実現したいこと
下記のコードで、【ページ読み込み時】に// メタデータを書き換える
という機能があります。
これをアレンジして、// bodyのクラスを書き換える
という機能を実現したいです。
JavaScript
1【関数】.on('【ページ読み込み時】', function(currentStatus, oldStatus, container, newPageRawHTML) { 2 3 // メタデータを書き換える 4 var head = document.head; 5 var newPageRawHead = newPageRawHTML.match(/<head[^>]*>([\s\S.]*)</head>/i)[0]; 6 var newPageHead = document.createElement('head'); 7 newPageHead.innerHTML = newPageRawHead; 8 9 var removeHeadTags = [ 10 "meta[name='keywords']" 11 ,"meta[name='description']" 12 ,"meta[property^='og']" 13 ,"meta[name^='twitter']" 14 ,"meta[itemprop]" 15 ,"link[itemprop]" 16 ,"link[rel='prev']" 17 ,"link[rel='next']" 18 ,"link[rel='canonical']" 19 ].join(','); 20 21 var headTags = head.querySelectorAll(removeHeadTags) 22 for(var i = 0; i < headTags.length; i++ ){ 23 head.removeChild(headTags[i]); 24 } 25 var newHeadTags = newPageHead.querySelectorAll(removeHeadTags) 26 27 for(var i = 0; i < newHeadTags.length; i++ ){ 28 head.appendChild(newHeadTags[i]); 29 } 30 31});
###試したこと
下記➀➁➂の流れで出来るんじゃないかと思っているんですが、➀のアテがはずれて実現できない状況です。
自分的にこの➀は、newPageRawHTML
の中からgetElementsByTagName('body')[0].className
を使って// 新しいbodyのクラスを取得
しているつもりなんですけど、、、
JavaScript
1【関数】.on('【ページ読み込み時】', function(currentStatus, oldStatus, container, newPageRawHTML) { 2 3 // メタデータを書き換える 4 /* 5 * 同上なので割愛 6 */ 7 8 // bodyのクラスを書き換える 9 var newPageRawBody = newPageRawHTML.getElementsByTagName('body')[0].className; // ➀新しいbodyのクラスを取得 10 var newPageBody = document.createElement('body'); // ➁新しいbodyの生成 11 newPageBody.className = newPageRawBody; // ➂書き換え 12}); 13
どうしたら、// bodyのクラスを書き換える
ことが実現できるでしょうか?
尚、上の// メタデータを書き換える
のコードはこちらのサイトのものです。