• 締切済み

JavaScriptで特定の変数に値が代入されるのを禁止する。

JavaScriptで、既存の変数に値を代入し、その後の上書き(その変数への値の代入)を禁止するにはどのようにすればよいでしょうか。 <script type="text/javascript"><!-- var hoge = "hogeは初期化されてます"; hoge = "hogeは変更されました";//ここ以降での変更(代入)を禁止したい。 hoge = "hoge変更2回目"; alert(hoge); //--></script> というスクリプトを書いたときに、alert(hoge)で「hogeは変更されました」と表示させたいのです。 他の方法は駄目です。この方法だけでお願いします。 よろしくお願いします。

みんなの回答

回答No.2

> 他の方法は駄目です。 他の方法がダメならできません。(他の方法と言っても、ブラウザ依存ですが。ヒント:watch)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

そういう機能はありません。

関連するQ&A

  • Smarty変数の値をJavascript変数代入

    よろしくお願いします。 SmartyのテンプレートにPHPファイルからassignされた変数を、 Javascriptの変数に割り当てたいと思います。 Smartyのテンプレート内では、デフォルトの設定だと、 {$hoge} として、値をHTMLとして書き出す仕様ですが、 色々な諸事情から、このデフォルト設定を、 {{$hoge}} として、{ を二度重ねないと機能しないように設定変更しています。 そこで、下記のようなJavascriptを実行しても上手くいかず、かなりはまってしまってます。 お助けください。 ※ダメな例 <script type="text/javascript"> var balloonA = {{$hoge}}; document.writeln (balloonA); </script> ※↓これだと当然出力されます。 ※aaaaa と表示される。 <script type="text/javascript"> var balloonA = "aaaaa"; document.writeln (balloonA); </script> なぜ、上の書き方だと変数内の値を取得できないのでしょうか? "{{$hoge}}"や'{{$hoge}}' として試しました。でもだめです。 色々ネットで探しましたが、 {literal} を使って・・・・というのもやりましたが、ダメでした。 そもそも、Smartyのデフォルト設定を {{ に変更しているので関係ないと思います。 ん~~何卒お力をおかしください。

    • 締切済み
    • PHP
  • Javascriptの変数の中に変数を代入するには

    Google chart というAPIがあります。これを利用して株価Chartを作ります。 https://google-developers.appspot.com/chart/interactive/docs/gallery/candlestickchart 末尾にGoogle Chartのソースを記載していますが このvar data内の ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] の部分を変更することによりローソクチャートが引けます。 一方、 <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; document.write("" + chart + ""); </script> と記載すると ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] のような株価変数が取得できるjavascriptを作成しました。 この2つを組み合わせると、株価チャートが引けることとなります。 ************************ 現在の苦境状況 ************************ Google chart APIに、下記のように「document.write("" + chart + ""); または "" + chart + "";または  + chart + ;」を代入してみたのですが、チャートは表示されません。 変数の中に変数を入れたことが原因と思いますが、どのようにすればいいかアドバイス願います。 <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ document.write("" + chart + ""); ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> ************************ GoogleChart ************************ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div>

  • JavaScriptの変数について

    JavaScriptのソースで解らないところがあり、困っています。 ソースは下記の様なものなのですが、エラーが出ていません。 解らない点は2点有ります。 1. jにfalseを代入している箇所なのですが、セミコロンがないのは何故なのでしょうか? Chromeのデベロッパツール, FireFoxのFirebugで確かめてみたのですが、エラーとなっておらず、alertでfalseと表示されている状態です。 「j = !1」の箇所を即時関数の外に出すと、エラーとなります。 普通変数に代入する式の末尾はセミコロンをつけると思うのですが、 何故なのでしょうか? 2.また、jはvar j等のように変数の宣言をせずに使えているようなのですが、 普通即時関数内で宣言した変数のスコープは関数の外では使えないので、エラーとなると思うのですが、宣言せずに代入に使った変数はグローバル変数と解釈されるのでしょうか? どなたかお答え下さい。 --------------------------------- <script> (function() { j = !1 })(); alert(j); </script>

  • javascript無名関数から変数にアクセス

    お世話になります。 javascript初心者です。 無名関数からグローバル変数にアクセスしたいのですが 外で変数を宣言して、内でvar無しで代入してみたのですがうまくいきません どのようにすれば期待する結果になるのか、お忙しい中恐縮ですが 詳しい方お教えいただけないでしょうか //グローバル変数 var hoge; //dataTransfer処理省略 //html5のFileReader var reader = new FileReader(); reader.readAsDataURL(file); //ロードが完了したら無名関数にてhogeに結果を代入 reader.onloadend = function(e) {  hoge = e.target.result; }; alert(hoge); ■期待する結果 アラートで「結果」が表示される ■実際の結果 アラートで「」(空白)が表示される 無名関数内でalert(e.target.result);するとちゃんと結果が表示されるので FileReaderの処理は成功している模様です。 無名関数からグローバル変数にアクセスする方法を御存知の方 お教えいただけたら幸いです

  • 変数?配列?の値の代入[ ]と{}?

    こんにちは,よろしくお願いします。 JavaScriptで次のような変数の代入と思われる式の意味を教えてください。  var testValue = {};  var hsValue = []; いろいろ探してみましたがはっきりしたことがわかりません。すみませんがよろしくお願いします。

  • javascript php 連携

    よろしくお願いします。 javascriptの『onchange』値をPHPの変数に入れたいと苦戦しています。 <html> <head> <script type="text/javascript"> function hoge1(){ var x = $('str1').options[$('str1').selectedIndex].text; やりたいことはここでPHPの変数『list_a』にjavascriptの変数『x』の値を入れたいです。 } </script> </head> <body> ここに結果表示 <?= $list_a; ?> <select id="str1" name="str1" onchange="hoge1()"> <option>hoge1</option> <option>hoge2</option> <option>hoge3</option> </select> </body> </html> よろしくお願いいたします。 ちなみにAjaxは全くわかりませんのですいません。。。

    • ベストアンサー
    • PHP
  • 代入ができない。(undefined)

    環境:XP SP2, IE6/php, html, javascript submitした際にjavascriptの関数(getNo())が呼ばれ、その関数内で代入ができず参っています。 .php ----- <? $setNo = [111,222,333,444,555]; for($i=0;$i<5;$i++) {?> <input type="text" name="no[<?=$i;?>]" value="<?=$setNo[i];?>" id="no"> <?}?> (submit省略) .js ----- function getNo(obj) { var orgNo = document.all("no"); var bufNo = ""; //初期化空 //var bufNo ; //初期化しないと※1 //var bufNo = "huga";//初期化"huga"※2 for(var k=0; k<orgNo.length; k++) {  alert(orgNo[k].value);//k=0なら111と表示される bufNo = orgNo[k].value;//代入してるのに alert(bufNo='+bufNo); //空のまま →代入されてない なぜ?? //alert(bufNo='+bufNo);//※1undefined→代入されてない //alert(bufNo='+bufNo);//※2huga→代入されてない alert(orgNo='+orgNo[k].value);//k=0のときなら111と表示される } .jsには他にもsubmitから呼ばれている関数があり それらは正常に動作しますが、この関数だけおかしいので 書き直してみたりしましたが改善されません。 また、関数内で配列も宣言してますが、 配列要素にfor文のiなどを[i]のようにいれても、配列の値がうまく変数に代入できません。 ただし、[0]や[2]と指定すると正しい値が表示され、代入もできます。 undefinedになることが問題なのではなく 代入されない理由がわかりません。 どういうことになっているのか教えてください。

  • javascriptで別ファイルで変数を取得する。

    A.htmlで入力した文字をB.htmlに出るようにしたいのですが、全然出ません。 アラートは表示されるのですが、入力欄に何を打っても、 namae と出てしまいます。変数に何も入ってないようです。 これを〔javascript〕って入力すれば、アラートに〔javascript〕って出るようにしたいのですが、どうしたらよろしいでしょうか? 〔A.html〕 <script type="text/javascript"> var val=namae; window.localStorage.setItem("result", val); </script> <form action="B.htm" id="form1" method="post" onsubmit="check()"> <p>名前<br><input type="text" name="namae" id="buttom" size="28" /></p> <input type="submit" value="送信"/> </form> 〔B.html〕 <script type="text/javascript"> var val = window.localStorage.getItem("result"); alert(val); </script>

  • javaScriptの変数をJavaの変数に代入する。

    jspで作ったプログラムがあるこのような場合変数を共有する方法はありますでしょうか? 以下の場合iの(JavaScript)値をjavaの変数iに代入したい場合どうすればいいでしょうか? <%! String s[] ={A,B,C,D,E} %> function chek(){ for(i = 0;i< 5 ;i++){ <%! int i =%> = i;//←この部分です //document.form1.desc.valueにはBの値が入っている if(<%! s[i] %> == document.form1.desc.value){ alert("Bです"); } }

  • 画像をクリックして変数に値を代入

    JavaScriptで、 ある画像をクリックして変数に10という値を代入したいと思っています。 ご存知の方いらっしましたらよろしくお願いします。 (「button」などで行う方法はわかります。)

専門家に質問してみよう