- ベストアンサー
アメブロで外部ファイルを読み込む方法とは?
- アメブロで外部ファイル(js)を読み込む方法について、原因を探っています。
- アメブロでプラグインの文字数を節約するため、サーバーに外部ファイル(jsファイル)を置きたいですが、うまくいきません。
- 特定のメッセージを記事上に表示させるための設定方法や、定型文を自動挿入する方法についても教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 「id="main"となるエレメントがない」というのは、 HTMLの方に<div id="main">などといった要素がないということです。 とりあえずこれは置いておいて…… document.getElementByIdが1つの要素のみ取得するのに対し、 document.getElementsByClassNameは複数の要素を配列で取得します。 ("Elements"と複数形になっているのはこのためです) なので、 var myObj = document.getElementsByClassName('skinMainArea'); ではなく var myObj = document.getElementsByClassName('skinMainArea')[0]; とすると、ひとまずページごとの定型文は設定できそうですね
その他の回答 (1)
- Picosoft
- ベストアンサー率70% (274/391)
FireFoxにてWebコンソールを出した状態で表示したところ、 TypeError: myObj is null plugin.js:7 とコンソールにエラーが出力されました。 id="main"となるエレメントがないのでは?
お礼
早速のご回答、ありがとうございます。 >id="main"となるエレメントがないのでは? というのは、cssの方にid名mainがないということですよね? cssの方で確認したところ、id名にmainはありませんでした。 では、該当するid名は何だろう?とブログのソースを調べていたら、class名で .skinMainArea が該当するみたいなので、 document.getElementsByClassName('skinMainArea'); に変更してみたのですが、ダメでした・・・。 アメブロのソースには、id名(#main)などがなく、 ほとんどclass名(.skinMainArea)なので 他のclass名も試してみたのですが、変わりませんでした。 Picosoftさんが使っているFireFoxのWebコンソールのように、javascriptのエラーが表示出来るようなものを使って、 どこがエラーになっているのか、確認してみたいと思います。
お礼
Picosoftさん >「id="main"となるエレメントがない」というのは、 >HTMLの方に<div id="main">などといった要素がないということです。 >とりあえずこれは置いておいて…… ありがとうございます。 document.getElementById('main')という文は、 <div id="main">という要素を探しにいく(抽出する)文ということなんですね。 <div id="main">がどこにも無ければ、エラーになって当然ですよね(^0^;) var myObj = document.getElementsByClassName('skinMainArea')[0]; にしたら、ページごとの定型文が表示出来ました!! ありがとうございます(T▽T。)!! 数字を[0]にする、という所がポイントなんですね。 他の数字や文字を入れたらどうなるんだろう・・・と気になったので、こちらは自分で調べてみますね^^ (下の方で、iを代入している書き方があるので iを使って色々と指定出来るのだと思いますが・・・) 「記事下に定型文を自動挿入」の方も、 if(myObj.className=='contents') という文が気になり、class名でcontensという要素が無いのでは・・・?と思ったら、やっぱり無かったので 該当する箇所のclass名に変更したら、表示することが出来ました^^ ご丁寧に教えてくださり、ありがとうございました。 javascript文の意味も少しだけ分かるようになり、本当に助かりました^^