ちょっと変わったマニアな作品が集結

JavaScriptで決まった「時刻」にページを移動するには?

お世話になります。

JavaScriptを使い、こちらが決めた時刻に自動的に
指定したページに切り替わりようにすどのようにすれば良いのでしょうか?

例:20時45分に現在のページから「page02.html」に移動する。

<script language="JavaScript" type="text/javascript">
<!--
var time = 45;

function setTimer(){
setTimeout("location.replace( './page02.html')", time * 60 * 1000);
}
//-->
</script>

自分なりに「setTimeout」「location.replace」を使って作ってみました。
移動する動作はリアルタイムで見られて良いのですが、
この場合、ページを開いてから45分後に移動してしまう為
指定した時刻での移動とはなりません。
「setTimeout」を使うのが間違っているような気がしますが、
他にどのようなメソッドを使ってよいのか分からない状態です。

必要に迫られJavaScriptを勉強し始めたばかりで分からないことだらけで
途方に暮れております。

ご指導よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

すでにすばらしい回答が出ていますが、一応おいときますね。


function myfunc(h,m,url){
var goTo = function(){location.href = url};

//現在の時刻を秒数にする
var now = new Date();
var currentS = (now.getHours()*60 + now.getMinutes())*60 + now.getSeconds() ;

//目標時刻を秒数にする
var targetS = (h*60 + m)*60;

//あと何秒で目標時刻になるか、差を求める(秒)
var jisaS = targetS - currentS;
//マイナスならすでに 今日は目標時刻を過ぎているということなので1日加算する
if( jisaS < 0 ) jisaS += 24*60*60; //1日の秒数を加算

//確認用
alert("あと"+ jisaS +"秒で "+ h+"時"+ m +"分です");
return setTimeout( goTo, jisaS*1000);
}
myfunc(20,40,"./page02.html");
    • good
    • 2
この回答へのお礼

度々ご指導頂きありがとうございます。

思っていた通りの動作をしてくれました。
今度は指定した日時で動作するよう自分なりにいじっていきたいと思います。

お二方共とても参考になるお答えを頂き感謝致します。
お二方にベストアンサーをお付けしたいのですが、
できないようなので最初にご指導頂いたJaneDue様に
ベストアンサーを付けさせて頂きます。

ありがとうございました。

お礼日時:2010/05/18 21:30

ばぶぅ~の脳内いんたーぷりんたが、ちょっとおかしいかもよ?


ぜんかくくうはくは、はんかくにおきかえてください

var hoge = function ( y, m, d, hh, mm, ss, ms ) {
 return Date.UTC( 1970 + y, 0 + m, 1 + d, hh, mm, ss, ms );
};


var fuga = function ( date, url ) {
 
 var oneDay = 24 * 60 * 60 * 1000;
 var cbFunc = function ( ) { location.href = url };
 var d = new Date;
 var s = d.getTime() - d.getTimezoneOffset() * 60000;
 var m = s % oneDay;

 while( date < m )
  date += oneDay;

 return setTimeout( cbFunc, date - m );
}

fuga( hoge( 0, 0, 0, 20, 45, 0, 000 ), 'http://okwave.jp/qa/q5902053.html' );
    • good
    • 0
この回答へのお礼

度々ご指導頂きありがとうございます。

思ったとおりの動作をしてくれました。
まだちゃんと理解はできていませんが、
色々と試していきたいと思います。

お礼日時:2010/05/18 21:20

var d = new Date(1970,0,1,0,0,0,000);


var ms = d.getTime();
alert("なんで1970/1/1 0:00:00.000なのに、"+ms+"な数字になるのさ?0じゃない?");
alert("でも、その値を、1000*60で割ると、"+ms/60000+"になるよ");
alert("これとおなじじゃん"+d.getTimezoneOffset());
    • good
    • 0
この回答へのお礼

ありがとうございます。

自分にとって時間の計算はなかなか難しいところですが、
これを参考に勉強していきたいと思います。

お礼日時:2010/05/18 21:17

じさ

この回答への補足

ありがとうございます。

恥ずかしいながら時差の求め方が分かりません。

補足日時:2010/05/18 13:01
    • good
    • 0
この回答へのお礼

ありがとうございます。

考え方のヒントになりました。
これからも頑張っていきたいと思います。

お礼日時:2010/05/18 21:14

<script language="JavaScript">


<!--

function goToPage02(){
//まずは現在の時刻を得る
var now = new Date();
var hour = now.getHours(); //時
var min = now.getMinutes();//分

//もし21時 45分なら 指定ページへ飛ぶ
if( hour==20 && min==45){
location.replace( './page02.html');

}else{
//それ以外であれば、1分後に再度確認する。
//(またはあと何分で20時45分になるか算出して、そのミリ秒後にsetTimeout()すればなお良し)
setTimeout("goToPage02()", 60000);
}
}
goToPage02();
//-->
</script>

この回答への補足

ご回答頂きありがとうございます。
指定した時刻にページが移動できるようになりましたが、
この場合リロードしないとpage02が表示されませんでした。

>>(またはあと何分で20時45分になるか算出して、そのミリ秒後にsetTimeout()すればなお良し)
これを使えリロードしなくても20時44分からページを見ていて20時45分になったらパッと
page02に切り替わってくれるのではないかと思い一晩かけて作ってみましたが
うまくできませんでした。

<script language="JavaScript">
<!--
//fromDate(現在の時刻)からtoDate(指定時刻)を計算する,
function calcDays(fromDate, toDate) {
var elapse = toDate.getTime() - fromDate.getTime();
}

//現在の日時を取得
var now = new Date();

//指定時刻
var xday = new Date(now.getFullYear(), 4, 18, 20, 45);

//現在時刻からあと何分で指定時刻になるか算出。daysLeftに格納。そのミリ秒後にsetTimeout()
var daysLeft = calcDays(now, xday);

//setTimeoutで時間が来たらページを移動
function goToPage02(){
setTimeout("location.replace( './page02.html')", daysLeft);
}
goToPage02();
//-->
</script>

ミリ秒の計算やその他色々間違っていると思うのですが、
どこがどう間違っているのか見当がつかず悩んでおります。
解決策はないでしょうか?
宜しくお願いします。

補足日時:2010/05/18 08:10
    • good
    • 0
この回答へのお礼

ありがとうございます。

ひとつの事が分かるとまた新たな疑問が出てきたりして大変ですが
勉強していきたいと思います。

お礼日時:2010/05/18 21:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJavascriptで指定した日付と時間に画像を入れ替える方法

Javascriptで指定した日付と時間に画像を入れ替える方法

WEBページ上のある画像を、指定した日付と時間に画像を入れ替える方法がわかりません。
ちなみに日付と時間はサーバー上のデータを取得したいと考えています。

例えば、10:00に「画像A」から「画像B」に切り替える。という感じです。

どのように書けばいいのか、ご指導よろしくお願い致します。

Aベストアンサー

サーバ時刻については既に回答があるみたいなので…

ローカル時刻で実行するサンプルを。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>
<div>
<img id="target" src="A.jpg" alt="A">
</div>
<div id="res"></div>

<script type="text/javascript">
<!--
(function() {
var schedule = "10:00"; // ←指定時刻
var target = "target" // ←対象の画像要素のid
var targetSrc = "B.jpg"; // ←取替え後の画像アドレス
var interval = 10 * 1000; // ←確認する時間のピッチ(10秒)

var now = new Date();
schedule = schedule.split(":");
var h = +schedule[0] || 0;
var m = +schedule[1] || 0;
var s = +schedule[2] || 0;
now.setHours(h), now.setMinutes(m), now.setSeconds(s);
(function R(){
if ((new Date()) - now > 0) {
document.getElementById("target").src = targetSrc;
} else {
setTimeout(R, interval);
}
})();
})();
//-->
</script>
</body>
</html>

サーバ時刻については既に回答があるみたいなので…

ローカル時刻で実行するサンプルを。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>
<div>
<img id="target" src="A.jpg" alt="A">
</div>
<div id="res"></div>

<script type="text/javascript">
<!--
(function() {
var schedule = "10:00"; // ←指定時刻
var target = "target" // ←対象の画像要素のid
var targe...続きを読む

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Q時間の比較は可能でしょうか?

<form name="time_hikaku">
開始時刻
<input type="text" name="hour" maxlength="2">
<input type="text" name="min" maxlength="2">
終了時刻
<input type="text" name="end_hour" maxlength="2">
<input type="text" name="end_min" maxlength="2">
</form>

で入力した時刻を比較し、終了時刻が開始時刻
より小さい場合にAlert表示したいのですが、
どうすれば、Javascriptで時刻比較できますでしょうか?
09:00 8:00など、0が入力される可能性もあるので、
時間関数などがあればできそうですが。。

Aベストアンサー

それぞれの時刻を「分」に直して数値比較してはどうでしょうか。

# スクリプト部
function checkTime(f) {
  // + f.min.value だと文字列連結になってしまうので、- 0 で数値化する。
  var stime = f.hour.value * 60 + (f.min.value - 0);
  var etime = f.end_hour.value * 60 + (f.end_min.value - 0);

  if (stime > etime) {
    alert("時刻を正しく入力してください。");
    return false;
  }
  return true;
}

# フォーム部
<form name="time_hikaku" onSubmit="return checkTime(this)">
※onSubmitから、trueを返せば送信、falseを返せば送信キャンセルとなる。

ここでは送信時にチェックするように書きましたが、好みのタイミングでcheckTimeを呼び出せばOKです。
その際、引数にはフォームオブジェクトを指定してください。

それぞれの時刻を「分」に直して数値比較してはどうでしょうか。

# スクリプト部
function checkTime(f) {
  // + f.min.value だと文字列連結になってしまうので、- 0 で数値化する。
  var stime = f.hour.value * 60 + (f.min.value - 0);
  var etime = f.end_hour.value * 60 + (f.end_min.value - 0);

  if (stime > etime) {
    alert("時刻を正しく入力してください。");
    return false;
  }
  return true;
}

# フォーム部
<form name="time_hikaku" onSubmi...続きを読む

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

QJavaScriptを使って毎日決まった時間に同じ作業を繰り返し行うには?

毎日15時になったら
parent.frames("A1").location.href = "2-A.html"
parent.frames("B1").location.href = "2-Aクリック.html"
を行いたい。というJavascriptを組みたいのですが、全く謎に包まれてきました。
色んな所で調べながらで調べながら自分なりに下記の様に作ってみたんですが…良くわからなくなってしまいました…
なんとかタイマーらしくカウントダウンはするんですが、時間を過ぎると白紙になってしまいます…
なんとか助けていただけないでしょうか?

<body>
<p align="center" class="style1">
発射まで<input type="text" name="tm2" size="1">時間<input type="text" name="tm2" size="1">分<input type="text" name="tm2" size="1">秒</p>
<script type="text/javascript">

var CountDownGenerator = function (y, m, d, hh, mm, ss) {
 var t = new Date(y, m-1, d, hh || 0, mm || 0, ss || 0);
 var s = y + '年' + m + '月' + d + '日' +
  (undefined === hh ? '': hh + '時') +
  (undefined === mm ? '': mm + '分') +
  (undefined === ss ? '': ss + '秒');
 return function () {
  var sa = t - (new Date);
  sa = sa / 1000 |0;
  if (sa<0) return { end: true };
  var ss = sa % 60; sa = sa / 60 |0;
  var mm = sa % 60; sa = sa / 60 |0;
  var hh = sa % 24; sa = sa / 24 |0;
  var dd = sa;
  return {
   day: dd, hours: hh, minutus: mm, seconds:ss, str:s, end:false
  };
 };
 }

var Viewer = function (c, nm) {
  var txt = document.getElementsByName(nm);
 
 return function() {
  var time = c();
  if (time.end) return
  txt[0].value = time.hours;
  txt[1].value = time.minutus;
  txt[2].value = time.seconds;
  setTimeout( arguments.callee, 1000);
 }();
};

var hiduke = new Date();
var myyear = hiduke.getYear(); // 年
var mymonth = hiduke.getMonth() + 1; // 月
var myday = hiduke.getDate(); // 日
var myhour = hiduke.getHours(); // 時
var mymin = hiduke.getMinutes(); // 分
var mysec = hiduke.getSeconds(); // 時

//--------実際に実行する時間---
var hahour = '15';// 時
var hamin = '00';// 時// 分
var hasec = '00';// 時
//-----------------------------
var jikkou = CountDownGenerator(myyear, mymonth, myday, hahour,hamin,hasec);
Viewer(jikkou, 'tm2');

if(!jikkou << hiduke){
parent.frames("A1").location.href = "2-A.html"
parent.frames("B1").location.href = "2-Aクリック.html"

}

//-->
</script>

毎日15時になったら
parent.frames("A1").location.href = "2-A.html"
parent.frames("B1").location.href = "2-Aクリック.html"
を行いたい。というJavascriptを組みたいのですが、全く謎に包まれてきました。
色んな所で調べながらで調べながら自分なりに下記の様に作ってみたんですが…良くわからなくなってしまいました…
なんとかタイマーらしくカウントダウンはするんですが、時間を過ぎると白紙になってしまいます…
なんとか助けていただけないでしょうか?

<body>
<p align="center" class="style1...続きを読む

Aベストアンサー

おは~。ながめてたら、それを、かいたのおれじゃん!ってことで。
なんかいけてないようなきがする~。
ほんとは、すうちのちぇっくしなきゃね~ ばぶばぶばぶぅ~

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>かうんとだうんして、なにかする</title>

<p align="center">
発射まで
<input type="text" name="tm2" size="1">時間
<input type="text" name="tm2" size="1">分
<input type="text" name="tm2" size="1">秒
</p>
<script type="text/javascript">

var CountDownGenerator = function (y, m, d, hh, mm, ss) {

 var t = new Date(y, m-1, d, hh || 0, mm || 0, ss || 0);
 var s = y + '年' + m + '月' + d + '日' +
  (undefined === hh ? '': hh + '時') +
  (undefined === mm ? '': mm + '分') +
  (undefined === ss ? '': ss + '秒');

 return function () {
  var sa = t - (new Date);
  sa = sa / 1000 |0;
  if (sa<0) {
   return { end: true };
  }
  var ss = sa % 60; sa = sa / 60 |0;
  var mm = sa % 60; sa = sa / 60 |0;
  var hh = sa % 24; sa = sa / 24 |0;
  var dd = sa;

  return {
   day: dd, hours: hh, minutus: mm, seconds:ss, str:s, end:false
  };
 };
};


var EveryTime = function (y, m, d, hh, mm, ss) {

 var now = new Date;

 if (y === '') y = now.getFullYear();
 if (m === '') m = now.getMonth() + 1;
 if (d === '') d = now.getDate();
 if (hh === '') hh = now.getHours();
 if (mm === '') mm = now.getMinutes();
 if (ss === '') ss = now.getSeconds();

 return CountDownGenerator(y, m, d, hh, mm, ss);
}


var Viewer = function (c, nm, func) {

 var txt = document.getElementsByName(nm);

 return function() {
  var time = c();
  if (time.end) return func();//ここ
  txt[0].value = time.hours;
  txt[1].value = time.minutus;
  txt[2].value = time.seconds;
  setTimeout( arguments.callee, 1000);
 }();
};


var func = function () {
 alert("なにかする?");
}


var jikkou = EveryTime('','','',15,0,0);//0と''は違う
Viewer(jikkou, 'tm2', func);

</script>

おは~。ながめてたら、それを、かいたのおれじゃん!ってことで。
なんかいけてないようなきがする~。
ほんとは、すうちのちぇっくしなきゃね~ ばぶばぶばぶぅ~

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>かうんとだうんして、なにかする</title>

<p align="center">
発射まで
<input type="text" name="tm2" size="1">時間
<input type="text" name="tm2" size="1">分
<input type="text" name="tm2" size="1">秒
</p>
<script t...続きを読む

QJavascriptで自動更新

あるページを10秒に一度、自動で更新させたいのですがなにかよい方法はありませんか?
このサイトで見かけたスクリプトを試してみても動作しませんでした;;

<script language="JavaScript">
<!--

min=60;
setTimeout('reload()', min*1000);

function reload() {
location.href=location.href;
}

//-->
</script>

Javascriptで実現する方法があれば教えてください。

Aベストアンサー

チャットか何かかな?
下記コードで動作確認できました。

<script type='text/javascript'>
(function(){
var t = setInterval(function(){
location.reload(true);
}, 10000);
})();
</script>

window.setInterval - MDC
https://developer.mozilla.org/ja/DOM/window.setInterval

# 実際に確認してませんが、IE8ではmeta refreshが効かないそうですね…。

OKWave ジャンプページ?
http://internet.okwave.jp/qa4990882.html?ans_count_asc=1

Q外部ファイルにしたら文字化けしてしまいました

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "http://~";
jmp[1] = "http://~";
jmp[2] = "http://~";
jmp[3] = "http://~";
jmp[4] = "http://~";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img1.jpg";
img[1] = "img/img2.jpg";
img[2] = "img/img3.jpg";
img[3] = "img/img4.jpg";
img[4] = "img/img5.jpg";
n = Math.floor(Math.random()*jmp.length);
document.write("<a href='"+jmp[n]+"' target='_blank'>");
document.write("<img src='"+img[n]+"' border='0'>");
document.write("</a>");

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先...続きを読む

Aベストアンサー

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

一般的に、Windowsの標準の環境だと。前段で述べた様な、様々な種類の文字コードを扱う事が出来ないので。事実上、作業は「Shift-JIS」1択と言う事になります。また『メモ帳(notepad.exe)』では「改行コード」を編集出来ないので、HTMLやJavaScript(JSファイル)を編集するには力不足です。何か特別なソフトとかを使わずに、Windows標準の『メモ帳(notepad.exe)』でJSファイルを編集したのであれば、十中八九、文字コードは「Shift-JIS」になっているはずです。


>文字コード
「文字コード」とは、コンピュータ上でテキストファイル(*.txt)をやり取りする時の方式の事で、現在では100種類近くの文字コードがあります。インターネット上でよく使われる文字コードは、「UTF-8」、「Shift-JIS」、「EUC-JP」~の3種類で、基本的にはこれだけ押さえておけばOKです。

考え方としては、日本語や英語のように。同じ意味を持つ文書でも色んな国の言葉で書く事が出来る様に。コンピュータ上での文書の表し方にも方言というか、色んな国の言葉がある様な物だと思ってて下さい。先に述べた「改行コード」や「BOM無し」とかは忘れて下さい。

で、初心者はコレだけ覚えて置いて欲しいのですが…

・半角英数文字だけなら文字化けは起きない

~と(実際は違いますが、話がややこしくなるので簡単にします)。半角英数文字ってのは「abc,?!#123456+-=」みたいな文字の事です。全角文字とは違うので注意して下さい(全角文字 → abc,?!#123456+-=)。従って逆説的に言えば「日本語を使う時は常に文字コードの影響を受ける」と言う事です。

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

...続きを読む

QJavaScriptで文字列の特定文字以降を取得する方法

変数 url に以下のような文字列が代入されています。
var url='http://www.example.com?id=2&page=3';

ここから?以降の文字列だけを取得したいのですが、どのようにすれば良いのでしょうか?
「id=2&page=3」←このような結果が欲しいです。

ブラウザのurlから直接?以降を取得するには location.search を使えば良いというのは調べてわかりましたが、変数に文字列としてurlが代入された場合の方法がわかりません。

ご回答よろしくお願いいたします。

Aベストアンサー

文字列から抽出するのであれば、indexOfを使うか正規表現かでしょうね
深く考えなければ前者、複雑なデータを取りたいなら後者でしょうか

<script>
var url='http://www.example.com?id=2&page=3';
if(url.indexOf("?")>=0){
var str1=url.substring(url.indexOf("?")+1,url.length);
}
document.write(str1+"<br>");

var reg=new RegExp("\\?(.+?)$");
if(url.match(reg)){
var str2=url.match(reg)[1];
}
document.write(str2);
</script>

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング