スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FC2ブログでJavaScriptが動作しない件について

今回は前回のブログチャートの記事を書いていて気づいたことなのですが、
FC2ブログでは記事本文中にJavaScriptを記入すると、どうやらその記入したJavaScriptが
正常に機能しないようです。

というわけで、今回は「FC2ブログにてJavaScriptが動作しない件について」、と題しまして
FC2ブログでの記事本文中でJavaScriptを動作させる方法や対処法を
記入させていただきたいと思います。詳細は続きから
【概要】

今回の件は前回のエントリー「ブログをレベルチャートで表示してみた」の記事で
ブログパーツを導入させていただいたときのJavaScriptのコードがFC2ブログにて、
正常に動作しないことを確認しましたので、その対処法について説明させていただきたいと思います。



【とりあえず】


FC2ブログでJavaScirptが動作しない・・・といっても見ての通り当サイトの右側のプラグインの
サイドバーにある「Sun Eternityエンブレム」や「World-Word-翻訳」はJavaScriptを
使用しているので、このことを考慮するとどうやら動かないのはFC2ブログの記事本文中のみ
ではないかな~と推測しました。

なので、まずは実際に前回のJavaScriptを当サイトのフリースペースに入力して、
しっかりと動作するかどうかを実際に実験してみました。

実際に前回のJavaScriptのコード

~~ここから~~

<script type="text/javascript" src="http://blogchart.jp/js/blogparts.js"></script>
<script type="text/javascript"><!--
id="11157";blogurl="http://annkokunokizinn.blog116.fc2.com/";partstype="b";viewBlogparts();
// --></script>

~~ここまで~~

これについては予想通りサイドバーなどの記事本文以外のフリースペースに
入力してみると以下のような感じでJavaScriptがちゃんと表示されました。

ちゃんと表示されました

これを見て、自分は
テンプレート(HTML)側でJavaScriptの動作を止めるスクリプトでもあるのだろうか?

と考え、当サイトの初期で挿入されているJavaScriptをチェック・・・

しかし、これといって記事本文中の動作を停止させるようなスクリプトはありませんでした・・・

そもそもJavaScriptにはPerl文法のようなスクリプト強制停止である
dieやwarn(厳密にはちょっと違いますが)という感じの正式な文法が無い上に、FC2ブログの初期で
そのような融通の利かないような設定をする理由も特にないと考えられますので、
テンプレート初期の他のJavaScriptの介入ではないと判断できました。

となると。。。次は「記事本文中のHTMLの状態」と「フリースペースでのHTMLの状態」の違い
ついて考えてみました。

すると一つ、気になる点が見つかりました。

それは、FC2ブログの初期設定にてブログの記事を入力して改行すると本文のHTMLにも
改行タグ<br>が自動的に挿入される「記事の設定」の「改行の扱い」の部分の設定に関してです。

もしかしたら・・・この部分がJavaScriptの動作を妨げているのではないかな~?

と考え「記事の設定」の部分を「HTMLタグのみ」に変更してみました・・・

すると、見事!最初の方に書いたJavaScriptが動作(表示)するようになりました。


ですが、この「HTMLタグのみ」の設定にすると記事の文章での改行が無くなってしまうため
はっきりいって既に書いた文章にとってはなかなか実用的ではないですね。

というわけで、自分は以下のようにしてJavaScriptを「自動改行」の状態で動作させるようにしました。



【JavaScriptを記事本文中で動作させる方法】

これについてはとってもシンプルで自動改行の時は記事本文を入力しているときに自動的に
<br>タグが挿入されてしまうのですから、そうならないために<br>タグ自体が挿入されないように
記事本文中のJavaScriptの文章では「改行をしなければ良いのです

具体的には上記のブログパーツの例では


【Step1】
~~JavaScriptコード~~

<script type="text/javascript" src="http://blogchart.jp/js/blogparts.js"></script>
<script type="text/javascript"><!--
id="11157";blogurl="http://annkokunokizinn.blog116.fc2.com/";partstype="b";viewBlogparts();
// --></script>

~~ここまで~~

上記のような感じで入力すると改行で<br>タグが自動で挿入されるため、
JavaScriptが正常に動作しませんので以下のように
改行を無くして入力します。

【Step2】
~~JavaScriptコード~~

<script type="text/javascript" src="http://blogchart.jp/js/blogparts.js"></script><script type="text/javascript">id="11157";blogurl="http://annkokunokizinn.blog116.fc2.com/";partstype="b";viewBlogparts();</script>

~~ここまで~~

という感じにすることによって、見事FC2ブログでの記事本文中でもJavaScriptの
ブログパーツが下記のように表示されるようになりました。




ちなみに<!--  -->はHTMLのコメントですので、これを入力してしまいますと、
なぜか、記事本文中ではJavaScriptが動作しないようになりますので、
HTMLのコメントは上記のように外して記入させていただきましょう。

いろいろ書きましたが、上記のことを要約するとFC2ブログの記事本文でJavaScriptを
動作させるためには「記事本文中のJavaScriptの改行をなくす」
ということです。
(記事の設定での改行の扱いを自動改行にしている場合)

これで、記事本文中でも自由自在にJavaScriptが扱えるようになりましたね。

それでは、ここら辺で「FC2ブログにてJavaScriptを動作させる方法」についての説明を
終わらせていただきたいと思います。

関連記事:
英語や韓国など計8カ国の言語に対応させる翻訳プラグイン「World-Word-翻訳」
キラキラ画像が降ってくるJavaScript製FC2共有プラグイン「PikaPika_Atlantis」
コメント

No title

どうもコメントありがとうございました。
画像までアップしていただいて。ですが同調してるんですが、マットな質感がまだ気に入ってるので、画像容量はへらしてもうちょっと使ってみたいと思います。
画像容量は減らしていくとサイトの最適化になりますよね。
昨日からというか今もなんですけど忍者カウンターが障害で付けてるだけで28秒くらい表示にかかるので、はずしてみたところ、4秒で開きました。こういうこともあるんですね。

いえいえ

>omoroさん

>どうもコメントありがとうございました。
画像までアップしていただいて。ですが同調してるんですが、マットな質感がまだ気に入ってるので、画像容量はへらしてもうちょっと使ってみたいと思います。

わざわざありがとうございます^^
デザインは自分が一番良いと思った物を選択するのが一番好いことだと思いますので、それも好いと思いますよ^^

>画像容量は減らしていくとサイトの最適化になりますよね。
昨日からというか今もなんですけど忍者カウンターが障害で付けてるだけで28秒くらい表示にかかるので、はずしてみたところ、4秒で開きました。こういうこともあるんですね。

へぇ・・・28から4秒ですか・・・すごい差がでましたね・・・
自分のFC2カウンターも障害が起こったとき(ポップアップ時)に表示が遅くなったりしますが、サーバーからのレスポイント(応答)でかなり時間がかかったりする場合がありますからね・・・

他のパーツが原因で表示速度が遅くなったりするのは確かにご勘弁願いたいですね・・・^^;

それにしても、原因が特定できて本当に良かったですね^^

それでは、今後とも宜しくお願い致します。

なるほど。

はじめまして。パペポと申します。
改行タグでJavaScriptが動作しないというのは私も知っていたのですが、コメントタグがダメというのは意外でした。
私はよくブログパーツなどの紹介で、記事欄にスクリプトを入れるのですが、動作しない場合は泣く泣く画像にしていました。
もしかしたら、コメントタグを外すだけで動作したブログパーツがあったかもしれません。

しかし、このコメントタグなぜなんでしょう?
FC2の独自変数かなんかと関係があるのでしょうかね。
似てるし。

ちなみに私は自動改行を切っています。
文章の行間などは段落タグ(p)などで対処しています。

>既に書いた文章にとってはなかなか実用的ではないですね。
確かに再マークアップはキツイですね。
でも、自動改行は記事単位で設定できますのでスクリプト付きの記事のみ改行無しでがんばるみたいな。
まぁ、マークアップするとブログの気楽さがなくなっちゃいますが・・・^^

おっといけない、長々と失礼しました。では。

本当に

>パペポさん

コメントありがとうございます。

>改行タグでJavaScriptが動作しないというのは私も知っていたのですが、コメントタグがダメというのは意外でした。
私はよくブログパーツなどの紹介で、記事欄にスクリプトを入れるのですが、動作しない場合は泣く泣く画像にしていました。
もしかしたら、コメントタグを外すだけで動作したブログパーツがあったかもしれません。

恐らく殆どのブログパーツはこれで動作するようになるでしょうね。この状態では簡単なJavaScriptの構文でさえ動作しないようになっていましたからね・・・
<script type="text/javascript" language="javascript">
<!--
alert("JavaScriptです");
-->
</script>

という簡単な文法でテストをしたりしましたが、やはり改行が原因で動作することが出来ませんでしたね。

>しかし、このコメントタグなぜなんでしょう?
FC2の独自変数かなんかと関係があるのでしょうかね。
似てるし。

どうなんでしょうね・・・コメントタグの改行を無くしても動作することがないところを見ると、本当によくわかりませんね・・・
JavaScriptの文法でもC言語と同じようにトークン(単語)さえきちんと認識されれば文法上は問題は無いはずなんですけどね・・・
ひょっとしたら自分の知らないHTMLコメントとJSの仕組みがあるのかもしれません。

ちなみに通常ページでの↓はしっかりと動作することを確認致しました。
<script type="text/javascript" language="javascript"><!--
alert("JavaScriptです");
--></script>

FC2変数が関わっている可能性ですか・・・

確かにないとはいいきれませんね・・・
ですが、自分はあのテンプレートフォーム(HTML)のFC2変数の解釈はあのフォームに入力した時点(FC2サーバーのPHP)でFC2変数が解釈されて各ブログのページ設定という風にされているようなので、記事作成時には特に関係はないかな~と自分は思っているのですが・・・

実際に自分はこのシステムの開発者ではないので明確にはわかりませんね・・・
何にしてもコメントタグがつけれないのは古いブラウザではちょっと宜しくないので、もっと良い改善方法を見つけたい、ものですね。

>ちなみに私は自動改行を切っています。
文章の行間などは段落タグ(p)などで対処しています。
確かに再マークアップはキツイですね。
でも、自動改行は記事単位で設定できますのでスクリプト付きの記事のみ改行無しでがんばるみたいな。
まぁ、マークアップするとブログの気楽さがなくなっちゃいますが・・・^^

確かに、せっかくFC2ブログの仕様でHTMLタグを書かなくてもブログを書けるようになっているのですから、それをなくすのはちょっと厳しいですからね・・・
自分は元々HP(ホームページ)からはじめたのでHTMLはごく普通のあたり前のことと思っていたのですが、こちらのFC2ブログでは自分の思っている以上に文書の作成が楽で驚きましたよ・・・

>おっといけない、長々と失礼しました。では。

いえいえ、ご訪問いただき感謝致します。
これからも宜しくお願い致します。

どうもー。

とても詳しいレスどうもありがとうございます。ん~頭痛い^^
C言語も理解してるんですね、すごいなぁ。

えーっと、記事欄にスクリプトを埋め込む際は、コメントタグと改行を無くせば、改行の扱いに関係なく動作する、ということですね。
な~るほど。

テンプレートフォームと記事フォームは確かに違いましたね。
記事欄に独自変数を書いても読み込まないですもんね。
失礼しましたー^^

とても為になりました。
やはり理解の深い方とお話するとこちらの理解も深まりますね。
また、ちょいちょい寄らせてもらいます。では。

いえいえ

>パペポさん

コメントありがとうございます。

>テンプレートフォームと記事フォームは確かに違いましたね。
記事欄に独自変数を書いても読み込まないですもんね。
失礼しましたー^^

あ~、すいません
FC2変数がテンプレートフォームにしか使えないというのは自分のうっかりミスでした。^^;

自分の制作させていただいたFC2の共有プラグイン「World-Word-翻訳」はFC2変数により動作するというFC2専用のプラグインでした^^;

なので、FC2ブログの個別記事でもFC2変数は使えましたので、
HTMLテンプレートフォームでのみFC2変数が判定されるというのは自分の勘違いでした。真実と違う情報となってしまい申し訳ありませんでした。
(まさか、自分で作ったプラグインの仕様を忘れてしまうとは・・・)

>C言語も理解してるんですね、すごいなぁ。

ん~・・・自分は学習すれば誰でも簡単に習得できると思っていますので、自分は言われるほどすごくないです^^;

>やはり理解の深い方とお話するとこちらの理解も深まりますね。
また、ちょいちょい寄らせてもらいます。では。

そのようにいっていただき、とても光栄に思います^^
ありがとうございました。

それと、そちらのブログ一周年記念おめでとうございます
これからも自分も同じですがまったりとマイペースで頑張っていければな~と思っていますよ^^

それではパペポさん
今後とも宜しくお願い致します。

承認待ちコメント

このコメントは管理者の承認待ちです

承認待ちコメント

このコメントは管理者の承認待ちです
コメントの投稿
管理者にだけ表示を許可する

トラックバックURL

-

管理人の承認後に表示されます

-

管理人の承認後に表示されます

-

管理人の承認後に表示されます
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。