• ベストアンサー

外部jsファイルの変数に代入するには?

初心者ですがjavascriptについて質問です。 なんらかの値を外部ファイル内の変数に代入させることは可能なのでしょうか? うまく説明できませんが・・・ あるjsファイル内の文字をリンク先の外部jsファイル内の変数の中に入れたいです。 <例> abc.js の中にある文字列"○○○" ↓ abc.jaから <a href="xyz.js">にリンク ↓ xyz.js の中の var xxx ="○○○" に、したいのですが・・・説明が下手ですみません。 わかる方是非教えてください。

noname#180286
noname#180286

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

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

セッションストレージに書いて読みだすのが楽 古いIEはもう気にしてはいけない //abc.html <a href="xyz.html" onclick='OC(this)'>○○○</a> <a href="xyz.html" onclick='OC(this)'>△△△</a> <a href="xyz.html" onclick='OC(this)'>□□□</a> function OC(e){ sessionStorage.xxx=e.textContent } //xyz.html addEventLisner('load',function(){ xxx=sessionStorage.xxx })

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>abc.htmlの中のscript(abc.js)からxyz.html内のscript(xyz.js) うーん、abc.htmlからxyz.htmlに遷移するときに 所定の変数を渡したいということでしょうか? その場合はxyz.js側でうけとるための仕組みをつくっておかないと 難しいでしょうね。 たとえば、xyz.html?x=1的な検索文字を渡すか、xyz.html#x1的なハッシュで処理された 場合に、発動する仕組みをonloadに組み込むことです。

noname#180286
質問者

補足

回答ありがとうございます。なんとなくイメージが湧いてきました。 >abc.htmlからxyz.htmlに遷移するときに 所定の変数を渡したいということでしょうか? その通りです。 ちなみabc.htmlの中に複数設置したいです。遷移先は全てxyz.htmlで、渡したい文字は全て異なります。 abc.html(abc.js)に↓ <a href="xyz.html">○○○</a> (1) <a href="xyz.html">△△△</a> (2) <a href="xyz.html">□□□</a> xyz.html(xyz.js)が↓ var xxx ="○○○"  ((1)をクリックした場合の結果) var xxx ="△△△"  ((2) 〃) var xxx ="□□□" xyz.js(.html)だけでなく個別にjsファイルを用意すれば済むことなのですが、ファイル数がかなり多くなるので一つのファイルに渡せて、それぞれの表示結果が出せればと・・・。 わかり難い説明ですみません。 たぶん渡す側と受け取る側両方になんらかの処理が必要になるんだと思いますが処理方法がわかりません・・・。 yz.html?x=1やxyz.html#x1的な処理、onloadに組み込等、詳しく教えてもらえれば幸いです。

  • bugmaker
  • ベストアンサー率63% (12/19)
回答No.1

aタグでjsにリンクを貼ってもテキストが表示されるかダウンロードされるだけです。 jsファイルの置いてある場所のドメイン名が違う場合などは通常そういうことは出来ません。 それについてはsandbox(サンドボックス)で検索してみて下さい。 もしかしてこういうことでしょうかね。 <html> <head> <script type="text/javascript" src="abc.js"></script> <script type="text/javascript" src="xyz.js"></script> </head> <body> : abc.jsに文字列"○○○"を返すfunction作ってxyz.jsから呼び出せば代入出来るはずです。

noname#180286
質問者

補足

回答ありがとうございます。 .jsではなく、abc.htmlの中のscript(abc.js)からxyz.html内のscript(xyz.js)です。 jsファイルの置いてある場所が違うので出来ないのでしょうか?一度sandboで検索してみます。

関連するQ&A

  • 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>

  • 変数の代入値を外部の.txtファイルから読む

    var AAA = "XXXX"; このように変数AAAにXXXXという値を代入したいのですが、XXXXは外部ファイルTEXTDATA.txt内にあります。 javascriptのみで、TEXTDATA.txtをオープンして文字列を取得することはできるのでしょうか? TEXTDATA.txt には XXXX 以外の文字はありません。 だれか回答できるかた、よろしくお願いします。

  • 外部ファイル名を変数で指定できるか?

    JavaScriptで参照する外部ファイルを、ヘッダー部で以下のように記述しています。 <script language="JavaScript" src="Data.js"></script> このsrc=で、指定するファイルを、変数で指定することは可能でしょうか? 試しに <script language="JavaScript"> <!-- var Src_File = "Data.js";  src=Src_File; //--> </script> と記述しても、エラーとなってしまいました。 変数を使いたい理由は、ラジオボタン等を使って、参照する外部ファイルを動的に切り替えたいのです。 よろしくお願いします。

  • 外部呼出しのjsファイルについて

    外部呼出しするファイルを直接HTML内に記述したいのですがどのようにしたらよいのかわかりません。 ご存知の方がいましたらお教えください。 通常の方法は分かるのですが... <script LANGUAGE="javascript" src="xxx.js"></script> このような形で記述したいです。 <script LANGUAGE="javascript"><!-- src="xxx.js"; //--> </script>

  • Google feed API の外部jsファイル化

    Google feed API をつかって、 rssリーダーを作って実験しているのですが、 以下のjavascript部分を外部jsファイルすると、 動作しなくなってしまい困っています。 javascriptには、外部js化が出来るものと 出来ないものがあるのでしょうか? どなたかご教授おねがいいたします。 <script type="text/javascript"> function load() { var feed = [ {title:'xxx', url:'http://xxx.com'} ]; var options = { numResults : 3, stacked : true, displayTime : 7000, fadeOutTime : 500, linkTarget : google.feeds.LINK_TARGET_BLANK } new GFdynamicFeedControl(feed, "feedControl", options); } google.load("feeds", "1"); google.setOnLoadCallback(load); </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()"> 以上です。宜しくお願いします。

  • スクリプト外部ファイルを変数で指定する方法

    スクリプト外部ファイル(例えば、bbb.js)をhtml内へ読込むには、 <script language="JavaScript" scr="bbb.js"></script> と書く事を知りました。 ファイル名を変数(aaa="bbb.js")に入れて、変数aaaで読込む方法を教えて下さい。 次のように、変数aaaにファイル名bbb.jsを代入して、読込みたいのですが、動作しません。 <body> <script language="JavaScript"> aaa=location.search; aaa=aaa.substr(1,(aaa.length - 1)); </script> <script language="JavaScript" src=aaa></script>

  • 変数にHTMLを代入する場合

    ただの文字列であれば $html = "abc"; で代入できますが、 たとえば$htmlという変数に 「 <a href="$url">$url</a> 」 という文字列を代入する場合にはどうすれば良いんでしょうか? もちろん$urlは変数名ではなく、代入された文字列を表示します。 (例:$url = "http://#/")

    • ベストアンサー
    • PHP
  • JSの変数をphpに受け渡す

    JSの変数 var w の値を、phpに、$abc = w; に受け渡し、 printf($abc); 表示する方法について、 それほど、難しいことではないかと思ったのですが、 解決できず、質問にいたりました。

  • 変数について

    htmlのソース上に変数をセットして外部javascriptでその変数を使いたいと考えています。 if(f[i].name.match(/変数を入れる/) ↑外部javascriptの//の間に変数を入れたいのですが、 外部ファイルと、htmlソースにはどのように書けばいいのでしょうか。 一応、講座等をみながら適当に以下のようにしてみましたが、駄目でした。 htmlソース <script type="text/javascript"> <!-- var myWord = "Hello"; // --> </script> <script type="text/javascript" src="name.js"> ↑の外部スクリプトには以下のように記述 if(f[i].name.match(/myWord/) javascriptはほとんど知識がないため、うまく説明できていないかもしれませんが、よろしくお願いいたします。

専門家に質問してみよう