• 締切済み

firefox3 GETパラメータが文字化けする問題 

a.php -> b.html(子ウィンドウ) a.php = Shift_JIS b.html = EUC-JP URLの含まれてるパラメータをjavascriptで切り取って b.htmlのフォームの値をセットしています、 IEでは問題ありませんが、 firefox3ではパラメータが文字化けしまいます。 (全角のみだと思いますが) b.html のjavascript です。 var Request = function() { this.getParameter = function( name ) { var rtnval = ""; var nowAddress = unescape(location.href); var parameters = (nowAddress.slice(nowAddress.indexOf("?")+1,nowAddress.length)).split("&"); for(var i = 0 ; i < parameters.length ; i++) { var varName = parameters[i].split("=")[0]; if(varName.toUpperCase() == name.toUpperCase()) { rtnval = parameters[i].split("=")[1]; break; } } return rtnval; } } どう対応すればいいのでしょうか。涙  

  • HTML
  • 回答数1
  • ありがとう数0

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

残念ながら画像は潰れちゃって見えないけど 文字化けしちゃうなら仕方ないわ、 しないようにして送信すればいいのよ。 例えば location.href="b.html?" + escape("あああ"); こんな風にしてね。 どうせb.htmlでunescapeかけているんだし。

petkitten
質問者

補足

確認が遅くなりました。 解決しました。ありがとうございます。

関連するQ&A

  • javascriptでGETパラメータを扱う

    javascript初心者です。 javascriptでURLをGETパラメータとして取得して、その値を HTMLのaタグのリンク先に指定しようとしています。 こんな感じに出来たらいいと思っています。 ↓ <a href="[GETパラメータで取得したURL]">[GETパラメータで取得したURL]</a> GETパラメータの取得は自力で調べて下記のように記述すればできることがわかりましたが、 aタグのリンク先に指定する記述方法が分かりません。 助けてください。 よろしくお願いします。 <script type="text/javascript"> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>

  • 受け取ったパラメータが文字化け

    お世話になります、JavaScript初心者です。 GET送信によるパラメータを他ページに受け渡して表示をさせると 各ブラウザで以下のような現象が起こります。 □Windows ・IE8:正常に表示 ・IE7:正常に表示するがエラーが表示される (エラー内容:「'document.form1.courseno.value'はNullまたはオブジェクトではありません。」) ・IE6:表示されずにエラーが表示される ・FF/chrome:文字化け □Macintosh ・safari/FF:文字化け 様々なサイトのソースを参考に自分なりに書いたのですが、 初心者なものでどこが原因なのか見当もつきません。 以下に該当するソースを明記いたしますので、ご教授いただければ助かります。 /* ↓↓↓パラメータを渡すページ↓↓↓ */ <script type="text/javascript"> function send() { var courseno=course=day=price=""; /* コード変換 */ courseno=escape(document.form1.courseno.value); course=escape(document.form1.course.value); day=escape(document.form1.day.value); price=escape(document.form1.price.value); } </script> <body> <form action="#" method="get" name="form1"> <p><a href="get.html?courseno=4074&course=水晶岳岳&day=12月25日&price=93,000円" onclick="send();">お申込み</a></p> </form> </body> /* ↑↑↑パラメータを渡すページ↑↑↑ */ /* ↓↓↓パラメータを表示させるページ↓↓↓ */ <script type="text/javascript"> function pramWrite() { var pram=location.search; /* パラメータがない時は処理しない */ if (!pram) return false; /* 先頭の「?」を削除して「&」で分割し配列へ */ pram=pram.substring(1); var pair=pram.split("&"); var i=temp=""; var key=new Array(); for (i=0; i < pair.length; i++) { /* 配列の値を「=」で分割 */ temp=pair[i].split("="); keyName=temp[0]; keyValue=temp[1]; /* キーと値の連想配列を生成 */ key[keyName]=keyValue; } var courseno=course=day=price=""; courseno=unescape(key["courseno"]); course=unescape(key["course"]); day=unescape(key["day"]); price=unescape(key["price"]); document.form1.pram.value="コースNO:"+courseno+"\n"+"コース名:"+course+"\n"+"出発日:"+day+"\n"+"旅行代金:"+price+"\n"; } </script> <body onload="pramWrite()"> <p>受け取ったパラメータを表示</p> <form name="form1" action="#"> <textarea name="pram" cols="40" rows="4" readonly="readonly" wrap="off" style="border:0;overflow:visible"></textarea> </form> </body> /* ↑↑↑パラメータを表示させるページ↑↑↑ */ 以上、よろしくお願いいたします。

  • javascriptからURLパラメータ値を送る

    使用言語はJSPです。 画面上のラジオボタンの値を取得しているjavascriptが以下です。 これでボタンが押下されたとき、この関数を呼び出しラジオボタンのVALUE値をアラートとして表示することはできています。 これをURLパラメータとして、JSPサーバ側に送りたいと思いますが、 NULL値となってしまいます。 取得は、request.getParameter("aaa"); としていますがNULL値です。 JAVASCRIPTからURLパラメータを送付・サーバ側から取得する方法を教えていただけますか。 function check(){ var aaa = document.getElementsByName("ラジオボタンの名前"); for(var i=0;i<arr.length;i++){ if(aaa[i].checked) var param = aaa[i].value; aaa.action = "./bbb.jsp?param="+param; aaa.submit(); return aaa[i].value; } }

  • URLのパラメータを取得するスクリプトは?

    初心者です。 無謀にもURLのパラメータを取得するためのスクリプトを作成していますが、 どうしても分からなく・・。 例えば「http://pekepeke.com/sample.html?AA=1234&BB=9876」のURLから、「AA」「BB」の パラメータ「1234」「9876」を取得し表示したいと考えています。 色々調べながら・・・下記を作成したのですが、表示が1項目のみしかされません。。 (素人・・と笑われるかもしれませんが・・) どうしたら2つ(目標は10項目ぐらいですが)を項目別に行別に表示できるのかを教えて 下さい。。 ---------------サンプル <html> <head> <title>JS test</title> </head> <body> <script> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i <hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } var tag1 = null; var hash = getUrlVars(); var tag1 = 'AA ' +hash['AA'] var tag2 = null; var hash = getUrlVars(); var tag2 = 'BB ' +hash['BB'] document.write(tag1); document.write(tag2); </script> </body> </html> ------------------------------------------------ どうぞよろしくお願いします。

  • 外部からgetされた内容をクッキーに書き込みたい

    お世話になります。 外部URLからgetされる内容をCookieに書き込んで利用したいのですが、うまくいきません。 外部から送られてくる内容は以下のものです。 <form method="get" action="https://www.xxxxxxxx/kiyaku.html" target="_blank"> <input type="hidden" name="id_agency" value="00000000"> <input type="image" name="submit" src="images/b.gif"> </form> 読み書き用のjavascriptとして、以下のものを作ってみました。 cookie.js ckary = new Array(); //setcookie ここから function setck(){ ckary[0] = document.forms[0].id_agency.value; exp=new Date(); exp.setTime(exp.getTime()+1000*60*60*24*60); ckstr = escape(ckary[0]); i = 1; while (ckary[i]){ ckstr += "%00" + escape(ckary[i]); i++; } document.cookie = "XX_Agency=" + ckstr + "; expires=" + exp.toGMTString(); } //setcookie ここまで //getcookie ここから function getck(){ cklng = document.cookie.length; ckary = document.cookie.split("; "); ckstr = ""; i = 0; while (ckary[i]){ if (ckary[i].substr(0,10) == "XX_Agency="){ ckstr = ckary[i].substr(10,ckary[i].length); break; } i++; } ckary = ckstr.split("%00"); if (ckary[0]) document.forms[0].id_agency.value = unescape(ckary[0]); } //getcookie ここまで javascriptはあまりわかりませんので、本を引きながら作っています。どなたか、指摘お願いします。

  • PHP内にJavaScript

    下記のようなはじめての訪問者に対してようこそ!と表示するJavaScriptをPHP内で動かすにはどのように記入すればよいのでしょうか? ==================================================== <script language="JavaScript"> var key = "freekeyword"; var n = 0; var cookies = document.cookie.split("; "); for(var i=0;i<cookies.length;i++){ var str = cookies[i].split("="); if(str[0] == key){ // n = str[1]; } } window.onload = function() { if(n == 0){ document.getElementById('welcome').innerHTML = 'ようこそ!'; } n++; setCookie(key,n); } function setCookie(key,val){ document.cookie = key + "=" + escape(val) + "; "; } </script> ==================================================== このスクプリトを下記<head>内にどのように記入すればよいので しょうか? PHPの文法などほとんど分からないレベルなのでそもそも質問 自体間違ってるかもしれませんがPHP内で同様の動作をさせたい のです。よろしくお願いします ==================================================== <?php echo ' <html> <head> </head>'; echo ' <body> <div id="welcome"></div> </body></html>'; ?> ====================================================

    • ベストアンサー
    • PHP
  • GETパラメータ

    こんにちは CGI初心者です。 http://www.perl-labo.org/formdata/getmethod/get.cgi?日本語 この様に、日本語のGETパラメータを取得したいです。 http://www.perl-labo.org/formdata/jpname/ を参考にしました。 【記述】 #!C:/Perl/bin/perl package plab; sub getformdata { local $rawdata; local %formdata; local @inputs; local($input, $name, $val); if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $rawdata, $ENV{'CONTENT_LENGTH'}); } elsif ($ENV{'REQUEST_METHOD'} eq "GET") { $rawdata = $ENV{'QUERY_STRING'}; } @inputs = split('&', $rawdata); foreach $input (@inputs) { ($name, $val) = split('=', $input); $name =~ tr/+/ /; $val =~ tr/+/ /; $name =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg; $val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg; $formdata{$name} = $val; } return %formdata; } 1; 実行するとサーバーエラーになってしまいます。 パスは「#!C:/Perl/bin/perl」で合っています。 記述方法のミスでしょうか? 教えて下さい!

    • 締切済み
    • CGI
  • Cookie情報取得についてです。

    Cookieに書き込んだjavaScriptの情報をhtmlで取得する方法はありますか? ソースは下の通りです。 <script language="JavaScript" type="text/javascript"> <!-- kikan=90; my_name="1"; my_datas=new Array(); my_datas2=new Array(); my_name="TestMan"+my_name; function DataRead() { if(document.cookie.length>0 && document.cookie.indexOf(my_name)!=-1) { my_datas=document.cookie.split("; "); for(i=0; i<my_datas.length; i++) {if(my_datas[i].indexOf(my_name)!=-1)break;} my_datas2=my_datas[i].split("="); my_datas2[1]=unescape(my_datas2[1]); } return my_datas2[1]; } function DataWrite(datas) { jikann=new Date(); ima=new Date(jikann.getTime()+(kikan*24*60*60*1000)); datas=escape(datas); document.cookie=my_name+"="+datas+";expires="+ima.toGMTString(); return; } CookieData="TEST"; DataWrite(CookieData); //--> </script> 最終的には「TEST」を取得したいのですが、よい方法は無いでしょうか?

  • Cookieへの書き込みは出来たのですが・・・

    Cookieに書き込んだjavaScriptの情報をjavaで取得する方法はありますか? ソースは下の通りです。 <script language="JavaScript" type="text/javascript"> <!-- kikan=90; my_name="1"; my_datas=new Array(); my_datas2=new Array(); my_name="TestMan"+my_name; function DataRead() { if(document.cookie.length>0 && document.cookie.indexOf(my_name)!=-1) { my_datas=document.cookie.split("; "); for(i=0; i<my_datas.length; i++) {if(my_datas[i].indexOf(my_name)!=-1)break;} my_datas2=my_datas[i].split("="); my_datas2[1]=unescape(my_datas2[1]); } return my_datas2[1]; } function DataWrite(datas) { jikann=new Date(); ima=new Date(jikann.getTime()+(kikan*24*60*60*1000)); datas=escape(datas); document.cookie=my_name+"="+datas+";expires="+ima.toGMTString(); return; } CookieData="TEST"; DataWrite(CookieData); //--> </script>

  • GETパラメータの内、空文字のクエリを消去したい

    フォームからGETで複数のパラメータを送信するとき、値が空文字のものを表示しないようにすることは可能でしょうか。 たとえば、次のようなフォームを含むform.phpがあるとします。 -------------- <form action="./result.php" method="get"> <input type="text" name="id" size="40"> <input type="text" name="name" size="40"> <input type="text" name="address" size="40"> <input type="text" name="sex" size="40"> <input type="submit" value="送信"><input type="reset" value="リセット"> </form> -------------- このフォームから、 -------------- id:13 name:佐藤太郎 address:東京都新宿区適当1-2-3 sex:男性 -------------- というデータを送信した場合、送信ボタンを押すと ./result.php?id=13&name=佐藤太郎&address=東京都新宿区適当1-2-3&sex=男性 のページに遷移しますが、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- ですと ./result.php?id=&name=佐藤太郎&address=&sex=男性 になります。 このままですとクエリが読みにくいので、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- の場合は ./result.php?name=佐藤太郎&sex=男性 と入力値のあるものだけを表示してそれ以外は消去したいです。 というのも、例としたform.phpではパラメータは4つでしたが、現在作成しているフォームではパラメータが21あり、空文字のものも含むと、遷移後の画面のURLがとても見にくいのです。 このようにパラメータを見やすくするようなjavascriptのコードを教えてください。 jQueryは1.7を使用しています。どうかよろしくお願いいたします。

専門家に質問してみよう