外部ファイルで呼び出している***という関数名と、LightPop内の関数名がバッティングしている可能性がありますね。
lightpop では、jQuery を使用しています。
jQuery の中で、window.onload イベントに jQuery.ready という関数を登録していますので、それが無効になってしまっているのかもしれません。
window.onload イベントに関数を登録する場合は
window.onload = function() {}
ではなく、jQuery式に
jQuery(function(){})
と記述するようにしてください。
kurosquare様、wokamoto様
ご回答ありがとうございます。
ご教示頂いたとおりに、
jQuery(function(){})
に変更してみましたが、なぜか反映はされませんでした。
使いたいjavascriptは、
window.onload = function() {
document.body.innerHTML = document.body.innerHTML.replace(/…/g, "<span style=\"font-family: 'MS Pゴシック'\">…</span>");
}
上記のもので、デフォルトでフォントを欧文フォントを指定しているのですが、それだと三点リーダが「…」ではなくピリオド「…」になってしまうので、三点リーダが入力されたら自動的にMS Pゴシックに変換させたいのです。
これを先ほど
jQuery(function(){
document.body.innerHTML = document.body.innerHTML.replace(/…/g, "<span style=\"font-family: 'MS Pゴシック'\">…</span>");
})
このように書き換えました。
そうすると、LightPopは反映するようになったのですが、上記の三点リーダの変換が反映されなくなってしまいました。
記述方法が間違っているのでしょうか?
大変お手数をおかけいたしますが、引き続き宜しくお願いいたします。
こちらの環境では
jQuery(function(){
document.body.innerHTML = document.body.innerHTML.replace(/…/g, "<span style=\"font-family: 'MS Pゴシック'\">…</span>");
})
でも、動作しました。
他の箇所で JavaScript エラーが発生しているのでは無いでしょうか?
ただし、この JavaScript には間違いがあります。
タグ内(例えば <a href="http://example.com/" alt="三点リーダ:…">三点リーダ:…</a>
)の三点リーダも変換してしまうので、おかしな表記になると思います。
以下のように修正すれば、回避できるかな?
jQuery(function(){
document.body.innerHTML = document.body.innerHTML.replace(/(>?[^<…]*)(…+)([^…>]*<?)/g, "$1<span style=\"font-family: 'MS Pゴシック'\">$2</span>$3");
})
あと、三点リーダに span タグを付けたいだけであれば、JavaScript でムリヤリやるよりは the_content フィルタをフックして、書き換えてやったほうがスマートです。
具体的には、以下のコードをお使いのテーマの functions.php に追記すれば、実現できます。
function replace_3pointlead($content){
$content = preg_replace(
'/(>?[^<…]*)(…+)([^…>]*<?)/' ,
"$1<span style=\"font-family: 'MS Pゴシック'\">$2</span>$3" ,
$content);
return $content;
}
add_filter('the_content', 'replace_3pointlead');
wokamoto様
迅速なご対応本当にありがとうございます。
ご教示頂いた通り、 functions.php に追記することによってちゃんと反映されるようになりました!
ご丁寧な説明本当に助かりました。
ありがとうございました。