アメブロで外部ファイルを読み込む方法とは?

このQ&Aのポイント
  • アメブロで外部ファイル(js)を読み込む方法について、原因を探っています。
  • アメブロでプラグインの文字数を節約するため、サーバーに外部ファイル(jsファイル)を置きたいですが、うまくいきません。
  • 特定のメッセージを記事上に表示させるための設定方法や、定型文を自動挿入する方法についても教えてください。
回答を見る
  • ベストアンサー

アメブロで外部ファイル(js)を読み込みたい

アメブロで、プラグインの文字数を節約するため サーバーに外部ファイル(jsファイル)を置き、読み込みたいのですが 参考サイトの記事を読んで、同じように書いても出来ません。。 一つ一つの記事の上に、メッセージが出るようにしたいのですが 反映されず・・・ 反映されないブログ⇒ http://ameblo.jp/webtest04/ サーバーにUPしたjsファイルには、以下のように書きました。 //全ページにメッセージボード設置 //http://ameblo.jp/exlink/entry-10241077474.html var myTm ='ここにタグを書いてください' //http://ameblo.jp/exlink/ function myT() { var myObj = document.getElementById('main'); myObj.innerHTML = ( '<div id="tme">'+ myTm + '</div>') + myObj.innerHTML;} //記事下に定型文を自動挿入 //http://ameblo.jp/exlink/entry-10163916334.html var myMe ='ここにタグを書いてください' //http://ameblo.jp/exlink/ function myF() { var myfix = document.getElementsByTagName('div'); for(i = 0; i < myfix.length; i++){ myObj=document.getElementsByTagName('div')[i]; if(myObj.className=='contents'){ myObj.innerHTML += ( '<p class="fix">'+ myMe + '</p>');}}} そして、アメブロのプラグインの方には、以下のように書きました。 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script> <script type="text/javascript" src="http://wt01.web.fc2.com/plugin.js"></script > <script language="javascript"><!-- window.onload = function(){ myT(),myF();} // --></script> --------------------------- どなたか、原因がわかる方はいらっしゃいますか? よろしくお願いいたします。

noname#242360
noname#242360

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.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]; とすると、ひとまずページごとの定型文は設定できそうですね

noname#242360
質問者

お礼

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文の意味も少しだけ分かるようになり、本当に助かりました^^

その他の回答 (1)

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

FireFoxにてWebコンソールを出した状態で表示したところ、  TypeError: myObj is null   plugin.js:7 とコンソールにエラーが出力されました。 id="main"となるエレメントがないのでは?

noname#242360
質問者

お礼

早速のご回答、ありがとうございます。 >id="main"となるエレメントがないのでは? というのは、cssの方にid名mainがないということですよね? cssの方で確認したところ、id名にmainはありませんでした。 では、該当するid名は何だろう?とブログのソースを調べていたら、class名で .skinMainArea が該当するみたいなので、 document.getElementsByClassName('skinMainArea'); に変更してみたのですが、ダメでした・・・。 アメブロのソースには、id名(#main)などがなく、 ほとんどclass名(.skinMainArea)なので 他のclass名も試してみたのですが、変わりませんでした。 Picosoftさんが使っているFireFoxのWebコンソールのように、javascriptのエラーが表示出来るようなものを使って、 どこがエラーになっているのか、確認してみたいと思います。

関連するQ&A

  • アメブロのメッセージボードを全ページに表示する方法

    アメブロに登録フォームをつくりたいと考えています。 その際、メッセージボードに登録フォームをつくり、それをTOPページ だけでなく全ページに表示できるようにしたいのですが、どうやっても できません。 このキーワードで検索して検索にひっかかったサイトを全て参考に してやってみたのですが ダメでした。 例えば、以下をそのままフリーブラグインに貼り付けましたが ダメでした。 <script language="javascript"><!-- function myT() { var myTm ='<p>dfasfdsafdsafcsa</p>' //http://ameblo.jp/exlink/ var myObj = document.getElementById('main'); myObj.innerHTML = ( '<div id="tme">'+ myTm + '</div>') + myObj.innerHTML;} window.onload = function(){myT();} // --></script> 何が問題なのかわからず困っています。 どうか助けてもらえないでしょうか? お願いします。

  • 1ページ内で複数のwindow.onload = functionの動作

    Ajaxを使用して取得してきたRSSをinnerHTMLで表示するスクリプトを1ページ内に複数設置したいのですが、うまくいきません。 prototype.jsを使うと複数のonloadを制御できるという記事を参考にしたのですが、動作しませんでした。(WindowsIE6で検証してます) http://hori-uchi.com/archives/2005_09.html BODY以下のソースはこちらです。現状だとどちらか一つだけなら動作する感じです。これをどちらも動作する方法をご教授いただけませんでしょうか。宜しくお願いします。 //RSS取得1箇所目 <div id="p1">roading1</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://###"; } var xml = {}; xml.onload = function(data){ var items1 = data.items; var g = "\n"; for(var i = 0; i < Math.min(items1.length, 20); i++){ // } document.getElementById("p1").innerHTML = g; } </script> //RSS取得2箇所目 <div id="p2">roading2</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://***"; } var xml = {}; xml.onload = function(data){ var items2 = data.Result; var h = "\n"; for(var i = 0; i < Math.min(items2.length, 20); i++){ // } document.getElementById("p2").innerHTML = h; } </script>

  • 外部ファイル(js)の呼び出し方法を教えてください。

    諸先輩方に、また質問させて下さい。 皆様のお力をお借りしjavascriptを利用してリンク先を変更させる事を解決する事が出来ましたが 外部呼出し(js)した場合、エラーが起こってしまいます。 他のjsファイルの場合は、何事も無く表示されるのですが、今回のリンク先変更という 変わった事をするのは初めての為、何が原因なのか全く解かりません。 jsに載せたいのは以下のスクリプトです。また表示させたいのはhtmlのテーブル内です。 恐らくですが・・テキストフォーム等が一緒だから駄目なのでしょうか・・・。 その場合の解決方法も教えていただければと思います。 呼び出すjsファイル例 <script language="javascript" src="change.js"> ======= <script> function change(){ var change=document.getElementById("change"); var tags=document.getElementsByTagName("a"); for(var i=0;i<tags.length;i++){ var url="http://aaa.bbb.ccc/"; var url2="?ddd="; var url3="eee"; var url4="&fff="; if(tags[i].href.match(url)){ tags[i].href=url+url2+url3+url4+change.value; }; } } </script> <a href="http://aaa.bbb.ccc/?ddd=eee&fff=xxxxx" target="_blank"> <img src="http://aaa.bbb.ccc/image/ddd.gif"></a> <br> <input type="text" id="change"><input type="button" value="変換" onclick="change()"> 以上です。宜しくお願いします。

  • jQuery.jsを使ったhtml外部読み込み

    教えてください。 現在Jqueryを使用して外部htmlを読み込ませようとしていますが、 うまくいきません・・・ ■本体html <head> <script src="js/jquery-1.8.3.min.js"></script> </head> <body> <script type="text/javascript" src="sample.js"></scrip> <div id="sample"></div> </body> ■sample.js // JavaScript Document $(function(){ $("#sample").load("sample.html"); }); ■読み込ませるsample.html 特に設定なし このような感じですが、全然読み込めません。。。 javascriptを外部リンクにしているのは、読み込むhtmlが複数ある為、 headの見栄えが悪くなるからという個人的な意見です・・・ 済みませんがお知恵をお貸しください!!

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

  • JSの外部ファイルの書き方を教えてください

    よろしくおねがいします。 私は初心者で技術者ではないですが、JavaScriptの項目はここだけのようなので質問させてください。 とある無料配布しているサイトからお借りしたもので、リンクにマウスが乗ると説明文がでるガイドメッセージのJSです。 外部ファイルはまた別のサイトで説明されていたとおりに書きました。 ほかのJSはそれで正常に動きましたが、このガイドメッセージだけはなぜか動きません。 サンプルではすべてHTML内に書いてありましたが、その通りにすると正常に動きます。 外部にするときはどこか変える場所があるのでしょうか・・・??? 自分はこんなふうに書いたのですが・・・ (外部ファイル内) function showMsg (text) { if(!document.getElementById) return; var msgbox = document.getElementById("msgbox"); msgbox.innerHTML = text; } (HTML内) (HEAD内) <script language="JavaScript" src="ファイルURL"></script> (body内) <a href="ファイルURL" onmouseover="showMsg('リンクの説明');" onmouseout="showMsg('いらっしゃいませ');">リンク文字</a> (リンクを表示させる場所) <p id="msgbox" lang="ja"> いらっしゃいませ</p>

  • jsについて

    html外部jsファイルを読むとき1行目と2行目違う内容を同時読み取る場合どうしたらいいですか html <html> <head> <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> <style media="screen" type="text/css"></style> <SCRIPT type="text/javascript" src="1.js"></SCRIPT> <body bgcolor="aliceblue" onLoad="dismsg1(0)"> <SCRIPT language="Javascript"> <!-- //イメージ、文章の切り替え function dismsg1(num){ document.all("mymsg").innerHTML=eval("msg"+[num]); document.all("mymsg1").innerHTML=eval("msg"+[num]); }; // --> </SCRIPT> <div id="mymsg"></div> <div id="mymsg1"></div> </body> </html> jaデータ var msg0="<font style='color:#800000;font-size:10pt'> 一行目</font>"; var msg1="<font style='color:#800000;font-size:10pt'> 二行目</font>"; ブログラム終了 上記の場合は"一行目"二回繰り返し表示するだけ msg1とmag2の内容を一行目と二行目表示したいです よろしくお願いします

  • 【javascript 文法】値渡し?参照渡し?

    以下実行すると、AAAをクリックしてもBBBをクリックしても「BBB」とアラートされます。 <html> <head> <script type="text/javascript" src="prototype.js"></script> </head> <body> <script type="text/javascript"><!-- var gDown= false; var div = document.createElement('div'); div.id = 'AAA'; div.innerHTML = 'AAA'; document.body.appendChild(div); Event.observe(div, 'mousedown',function(){ gDown = div; }); var div = document.createElement('div'); div.id = 'BBB'; div.innerHTML = 'BBB'; document.body.appendChild(div); Event.observe(div, 'mousedown',function(){ gDown = div; }); Event.observe(document, 'mouseup',function(){ alert(gDown.id); gDown=false; }); //--></script> </body> </html> javascriptって値渡しだと思っていたので、期待した動作と異なります。参照渡しだと考えると納得できるのですが、javascriptって 参照渡し?それとも値渡し? と混乱しています。 この辺のところを、教えてください。お願いいたします。

  • prototype.js で $ is not defined になってしまう!

    JSバージョン:prototype1.6 ブラウザ:Firefox2.0、IE7.0 OS:WinXPpro でシンプルに <html> <head> <title>$ - 指定idのエレメントを取得</title> </head> <script type="text/javascript" src="/js/prototype.js?aaads"></script> <script type="text/javascript"> function test1() { var element = $('div1'); alert(element.innerHTML); } </script> <body> <div id="div1">DIV1の中身</div> </body> </html> を実行したところ、$ is not defined と エラーになってしまいます。 あるレンタルサーバにUPして動かすと問題なく、 ローカルPCで実行するとエラーになってしまうようです。 どなたか教えて下さい!!!

  • JavascriptでInputClassの表示を変えるには

     以下のScriptを作りました。Tagの表示情報をScriptで変更したいのです。以下のdiv class="inC1"は変更されます。input class="inIPC2も変更したいのですが、どうもやり方が異なるようです。  申し訳ありませんがご教授願います。 <html> <head> <title>エレメントの表示</title> </head> <body> <script type="text/javascript"> function Disp_change() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inC1") div[i].innerHTML = "change1"; i++; } } function Disp_change_Class() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inIPC2") div[i].innerHTML = "change2"; i++; alert ("change2"); } } </script> <body> <div class="frameHead frameDetail"> <div class="inC1">連絡情報</div> <div class="clear"><hr /></div> <div class="inC2"> <input class="button3" type="button" name="fromUserList" value="" onclick="Disp_change()"> <input class="inIPC2">連絡情報</div> </div> <script type="text/javascript"> Disp_change(); Disp_change_Class(); }; </script> </script> </body> </html>  一応動きますので確認してみてくだされば幸いです。 以上、宜しく御願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう