+Javascriptの質問用スレッドvol.40+at HP
+Javascriptの質問用スレッドvol.40+ - 暇つぶし2ch192:Name_Not_Found
05/08/27 14:34:46
>191

function getQuery(_win) {

 if (!_win) _win = self;
 var q = _win.location.search;
 if (q.charAt(0) == "?") q = q.substr(1);
 var qz = q.split("&");
 var qTmp = new Array();
 var tmp = new Array();

 for (var i=0; i<qz.length; i++) {
   tmp = qz[i].split("=");
   qTmp[tmp[0]] = tmp[1];
 }
 return qTmp;
}

q = getQuery();
alert( q.name );


193:Name_Not_Found
05/08/27 15:07:21
>>192
調べてみます。
ありがとうございました!

194:Name_Not_Found
05/08/27 15:36:19
>>191
URLリンク(akiyah.bglb.jp)
これでもいいかもね

195:Name_Not_Found
05/08/27 15:48:31
>>192
>>194
思い通りの動作をしてくれました。
とても参考になりました。ありがとうございました。

196:Name_Not_Found
05/08/27 15:51:02
>>191
参考になるかどうか
URLリンク(www.geocities.jp)スレリンク(hp板)

ちなみにこれ作る時 javascript質問スレの全過去ログを見たんだけど
この類の事は見つからなかったです。

あとは>>194で出ているlocation.searchとか。




197:167
05/08/27 18:27:07
>>177
㌧。残念ながらリファラを見てるのでよそからのPOSTは受け付けないんです。
document.referrerを書き換えられればいいんですが…

198:167
05/08/27 19:37:29
すみません。自己解決しました…

199:Name_Not_Found
05/08/27 19:39:39
>>198
何して解決したのさ

200:以後予定なし
05/08/28 21:41:26
山梨県が嘆くほどくだらない質問をしてもいいですか。

<!--
document.forms["form1"].name.value = location.search.substr();
//-->
でURLから[nama=blog]という引数を取得しようと思ったのですが、CGIに送るときに
[nama=ine%3Dblo]と送られてしまうのですがなぜでしょうか?

201:Name_Not_Found
05/08/28 21:45:40
189は踏んでいいのか?

202:Name_Not_Found
05/08/28 21:51:49
..name.valueでは、..nama.valueは取得できません。

冗談はさておき、
まず送られる前の引数が[nama=blog]かデバックしろ。
合ってれば、文字コードの問題。変換して送れ。

203:以後予定なし
05/08/28 21:58:32
>>202
初心者には優しくな。

デバックは通ったから変換の仕方教えてください。

204:Name_Not_Found
05/08/29 00:36:21
>>203
漏れもエンコードについてはよくわからんのだけど、
HTMLとCGIの文字コードを同じにしてみては?ってことではないでしょうか

205:Name_Not_Found
05/08/29 00:46:13
何いってんだ。文字コードとか関係ないだろ。

206:Name_Not_Found
05/08/29 01:01:02
PHPに送ってやれば文字化けしなくて済むんだけどねぇ…
PHPじゃだめ?

CGIだとエンコの必要があるからKent-Webあたりから
サンプル(掲示板でOK)もってきて研究してみては?

207:Name_Not_Found
05/08/29 02:28:53
だから関係ないって言ってるだろw

nama=ine%3Dblo
っていうのは、デコードしたって
nama=ine=blo
にしかならないだろが。

nama=blog って取りたいんだろ?
ine= がどっから出てきたのかとか blog の g が何で消えたのかとか直さないと解決にならないだろ。

208:Name_Not_Found
05/08/29 02:48:57
>>201
XMLHTTPを使って自分で簡易確認すればいいだろ

209:Name_Not_Found
05/08/29 02:58:24
>>206
なんか凄いですね。ばかな私たちにrfc2396の要約を語って頂けませんか。

210:Name_Not_Found
05/08/29 03:02:56
もうちょっとレベルの高い質問と回答プリーズ

211:Name_Not_Found
05/08/29 11:00:04
レベルの低い人たちが引く

212:Name_Not_Found
05/08/29 11:04:53
URLリンク(www.googkle.com)

213:Name_Not_Found
05/08/29 19:34:46
行末のhtm|htmlをjpgにreplaceするbookmarkletをキボンヌします。
宜しくお願いします。

214:Name_Not_Found
05/08/29 19:39:13
>>213
希望承りました。ところで質問は何ですか?

215:Name_Not_Found
05/08/29 19:48:21
bookmarkletでの正規表現(RegExp)の使い方ですぅ。

216:Name_Not_Found
05/08/29 20:00:12
釣りじゃないなら30分でつくってやるよ

217:Name_Not_Found
05/08/29 20:03:07
釣りじゃないです。エロいページ用です。宜しくお願いします。


218:Name_Not_Found
05/08/29 20:18:13
javascript:document.location=document.location.href.replace("htm", "jpg");
一応これでも出来ますが、複数の拡張子となると...


219:213
05/08/29 20:35:31
javascript:(function(){document.URL=document.URL.replace(RegExp("htm|html"), "jpg")})();
出来ました。お騒がせ致しました。
こんなもんでいいんでしょうか?

220:Name_Not_Found
05/08/29 20:44:35
>>219
それを判断するのはお前だ

221:Name_Not_Found
05/08/29 20:58:11
便乗:bookmarkletでfocusとfuncionってどういう意図があるんですか?

222:Name_Not_Found
05/08/29 21:20:10
funcionって初めて聞くなあ

223:k
05/08/29 21:25:16
>219
javascript:location.replace(document.URL.replace(RegExp(/html?$/),"jpg"))

>221
219 にある function は無名関数。普通は変数を隠したいときに使う。
219 は無意味につき参考にはならん。
focus は恐らく最後に付け足されたもののことを言っていると思われるが
最後に評価された式で undefined を返さないと
返り値が出力されてしまうのでソレを回避する為の小技。
因みに focus より void を使う人が多い。が、これは好みの問題。

224:k
05/08/29 21:34:41
RegExp 消し忘れ・・・orz

225:Name_Not_Found
05/08/29 21:38:41
void より無名関数の人の方が多いんでないの?

226:213
05/08/29 22:16:03
>>223
レスありがとうございます。スルーされてると思ってました。
URLリンク(www.tohoho-web.com)で見たのですが、
(//)のスラッシュがよく分かりません。
説明しているサイトないでしょうか?
記号なので検索でけません。


227:213
05/08/29 22:18:51
訂正:書いてありますね。
orz

228:Name_Not_Found
05/08/29 22:31:29
便乗:ページ内のリンクをbookmarkletで書き換えるにはどうすればよいのですか

229:Name_Not_Found
05/08/29 22:42:08
doc.getElementsByTagName('A') (か doc.links) と for でも使え

230:Name_Not_Found
05/08/29 23:00:11
JavaScript:with(document.body)innerHTML=innerHTML.replace(/\.html?/ig,'.jpg');focus();
これブックマーク

231:Name_Not_Found
05/08/29 23:03:28
>>230
せめて href の値だけ書き換えるようにしようよ

232:Name_Not_Found
05/08/29 23:03:34
javascript:Elem=document.body.getElementsByTagName('A');for(i=0;i<Elem.length;i++){Elem[i].href=Elem[i].href.replace('html','jpg');Elem[i].href=Elem[i].href.replace('htm','jpg');};void(0);


233:Name_Not_Found
05/08/29 23:04:38
スバラシス

234:213
05/08/30 00:19:57
度々申し訳ありません。
URLリンク(images.google.co.jp)
URLリンク(images.google.co.jp)
URLリンク(images.google.co.jp)
のように&start=20の部分を書き換えるにはどうしたらいいのですか?
またレス宜しくお願いします。

235:Name_Not_Found
05/08/30 00:33:28
応用しろよw

236:orz
05/08/30 00:35:53
orz

237:k
05/08/30 07:42:27
>232
replace も正規表現が使えますよ

>234
ただの教えてクンになってきたな

// e.g., start=N の N に100足す
javascript:for(l=document.links,i=0;i<l.length;i++)l[i].href=l[i].href.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+100)});void 0

238:221
05/08/30 09:00:54
>>223
分かりやすい回答ありがとうございます
知りたい情報そのものでした
bookmarkletは字数を意識した方言が多くてややこしいです
replaceの第二引数に無名関数持ってくる手法もメモしておきます

239:234
05/08/30 15:22:47
レスありがとうございます。リンクの書き換えではなくロケーションバーの書き換えが欲しかったのれす。
javascript:(function(){document.URL=document.URL.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+20)})})();
動く
javascript:location.replace(document.URL.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+20)})
動かない。
第二引数に無名関数はすばらしいす。

240:Name_Not_Found
05/08/30 18:11:36
JavaScriptで<a>タグをするために document.createDocument('a') を実行したのですが、エレメントが正しく作成されないようです。
詳しくいうと、エレメント自体は作成されるのですが、色も変わらずアンダーバーもつかず、クリックしてもジャンプしません。
検証用のHTMLとJavaScriptは次のとおりです。どなたかアドバイスをお願いします。環境:Firefox1.06, IE6

<html>
 <head>
  <title>example</title>
  <script type="text/javascript">
  <!--
   // document.createElement("a")で<a>が作成されない?
   function add_link(url) {
    var elem = document.createElement("a");
    elem.attributes["href"] = url;
    elem.appendChild(document.createTextNode(url));
    document.getElementById('links').appendChild(elem);
   }
   -->
  </script>
 </head>
 <body>

  <button type="button" onclick="add_link('URLリンク(www.google.com)')">add link</button>
  <br>
  <span id="links"></span>

 </body>
</html>

241:Name_Not_Found
05/08/30 18:33:31
>>240
hrefを設定する部分の
elem.attributes["href"] = url;

elem.attributes["href"].value = url;
に変えると動くようになる

elem.href = url;
でもいいし、この方が簡略的

242:Name_Not_Found
05/08/31 03:29:29 G6DsaaU1
教えてください。
<table id="a">
 <tr><td>
<table><tr><td>
<input type="button" name="c" value="行番号" onclick="alert(・・・・);">
</td></tr></table>
 </td></tr>
 <tr><td>
  <table><tr><td>
<input type="button" name="c" value="行番号" onclick="alert(・・・・);">
</td></tr></table>
 </td></tr>
</table>

この場合に、alertでid="a"のrowIndexを出すためには、
this.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.rowIndex
としなければなりません。
parentElementがすごく多くなってしまうので、醜いのですが、
ほかに<input type="button"・・・ の位置から見てid="a"のrowIndexを
取得する方法ってありませんか?

それかボタンはname="c"で統一なので、
クリックしたのが何番目のcかが取得できればいいんですけど。

よろしくおねがいします。


243:Name_Not_Found
05/08/31 04:13:00
アンチテーブルレイアウターのネタ?

table に id 振ってあるなら document.getElementById('a').rowIndex でいいじゃん。

244:Name_Not_Found
05/08/31 06:04:02 FzB8fODy
>243
ありがとうございます。
でも取得できません。
table全体のrows.Lengthなら取得できるけど、自分(button)のいるrowのindexを
取得したいので。

連番等を振らずに自分が何番目のボタンかっていうのを取得したいのは、
173あたりと一緒かと思います。


245:Name_Not_Found
05/08/31 07:38:02
>>244
rowIndex は <table> 要素 (HTMLTableElement オブジェクト) じゃなくて
<tr> 要素 (HTMLTableRowElement オブジェクト) のプロパティ。
parentElement の数がそれでいいのは <tbody> があるから。

<table> の rows.item に対して、目的の要素が含まれるまでぐるぐる
回して調べる方法もあるけど、行数に比例して時間かかるよ。

与えた要素の 6 つ上の先祖を返す関数でも作ったら?
ついでに parentElement の代わりに parentNode を使った方がいい。

246:k
05/08/31 08:09:30
>>244
正直スマートな方法が思いつかんが

function getParentNode(_o, _t)
{
 _t = _t.toUpperCase();
 while (_o.tagName != _t) _o = _o.parentNode;
 return _o;
}
function getRootRowIdx(_o)
{
 var currentTabale = getParentNode(_o, "table");
 var parentTr = getParentNode(currentTabale, "tr");
 return parentTr.rowIndex;
}
function getButtonNum(_o, _name)
{
 var elmz = document.body.getElementsByTagName("input");
 var i, idx = -1;
 for (i=0; i<elmz.length; i++)
  if (elmz[i].name == _name)
  {
   idx++;
   if (elmz[i] == _o) break;
  }
 return idx;
}
function func(_o) // onclick="alert( func(this) );"
{
 var rowIdx = getRootRowIdx(_o); // rowIndex を取得
 var btnIdx = getButtonNum(_o, "c"); // ボタンのインデックスを取得
}

247:240
05/08/31 21:46:56
>>241
ありがとうございました。
elem.attributes["href"].value = url;
はうまくいきませんでしたが
elem.href = url;
だとうまくいきました。

JavaScriptのDOMだと、すべての属性がattributes配列にあるわけじゃなく、HTML標準の属性はプロパティとしてアクセスするみたいですね。
勉強になりました。

248:Name_Not_Found
05/09/01 01:28:49
function eventHandle (args) {
var e = args ? args : window.event ? event : null;
if ( ! e ) return null;

this.element = e;

this.clientX = e.clientX;
this.clientY = e.clientY;

if ( typeof(e.pageX) == 'number' ) {
this.pageX = e.pageX;
this.pageY = e.pageY;
}
else if ( typeof(e.x) == 'number' ) {
this.pageX = e.x + document.body.scrollLeft - document.body.clientLeft;
this.pageY = e.y + document.body.scrollTop - document.body.clientTop;
}
else if ( document.all ) {
this.pageX = e.clientX + document.body.scrollLeft - document.body.clientLeft;
this.pageY = e.clientY + document.body.scrollTop - document.body.clientTop;
}

return this;
}

これは何をしているスクリプトなんでしょうか?お願いします。

249:Name_Not_Found
05/09/01 05:22:04
質問です。JavaScriptからstyle.displayを操作してspanエレメントを表示させたり隠したりするスクリプトを書いています。
はじめはstyle.display="none"にしておき、ボタンを押すことで表示する/隠すを切り替えます。
しかし、<span style="display:none">foo</span>だと切り替えられるのに、<span class="hide">foo</span>にしてCSSでdisplay:noneを指定すると、うまく切り替わりません。
もっというと、CSSでdisplay:noneを指定したエレメントは、style.displayをどんなにいじっても、表示されません。
質問がわかりにくくてすみませんが、アドバイスをお願いします。なおFirefox1.06で試しました。
以下が検証用のHTMLファイルです。

<html>
 <head>
  <script type="text/javascript"><!--
   var flag = false;
   function toggle_display() {
    flag = !flag;
    var elems = document.getElementsByTagName('span');
    for (var i = 0; i < elems.length; i++) {
     elems[i].style.display = flag ? "" : "none";
    }
   }
  --></script>
  <style type="text/css"><!--
   .hide { display: none; }
  --></style>
 </head>
 <body>
  <button type="button" onclick="toggle_display()">toggle</button>
  <br>
  <span>foo</span><br>
  <span style="display:none">bar</span><br>
  <span class="hide">baz</span><br>
 </body>
</html>


250:Name_Not_Found
05/09/01 05:27:25
var p;

function a(){
a1 = document.f.a.selectedIndex;
a2 = document.f.a.options[a1].value;
var p = 0;

if(a2 == 10){
document.f.a.value = 10;
var p = 130;
}
if(a2 == 30){
document.f.a.value = 30;
var p = 670;
}
}

~(中略)~

function g(){


251:Name_Not_Found
05/09/01 05:28:13
function g(){
if( p < document.f.n.value ){
document.f.u.value = "N";
}
else{
if( document.f.n.value < p < document.f.n.value + document.f.m.value){
document.f.u.value = "N+M";
}
else{
  if( document.f.n.value + document.f.m.value < p < document.f.n.value + document.f.n.value){
  document.f.u.value = "N+N";
  }
else{
document.f.u.value = "";
}
}
}
}

aの数値を参照してn,mをそれぞれ計算させ、
gでn,mとpを比較してu文字列表示です
やりたいことは大体分かっていただけるでしょうか…(;´Д`)
悪戦苦闘しながらここまで組みましたが、変数の当て方とif分岐がうまく行っていないようで、正しく出来ません
(試しにpを130と書いて実行した時、n+m < 130 < n+n なのに、N+Mと表示されたりします…)

なんだかレベルの低い質問ですが、気の向いたエロイ方がいらっしゃればどうか何かヒントを…

252:Name_Not_Found
05/09/01 05:52:52
document.f.n.valueは数値じゃなくて文字列なので
数値に変換する必要がある

>document.f.n.value + document.f.n.value

変換するにはNumber関数を使う

Number(document.f.n.value) + Number(document.f.n.value)

253:Name_Not_Found
05/09/01 06:10:55
>>249
スタイルシートには、要素に適用されるスタイル (style 属性) と
<style> 要素などによって適用されるスタイルの二種類がある。
前者は後者よりも優先順位が高い。
elems[i].style.display のところで要素に適用されるスタイルを
変更してるけど、className は "hide" のままなので <style> 要素
で書かれたスタイルは依然適用される。
解決方法としては elems[i].style.display = flag ? "inline" : "none";
とすれば優先順位の規則によって <style> 要素の方は無視される。
style を使わずに className を変える方法もある。

>>250-251
document.f.m.value が何を指してるのかにもよるけど、その
プロパティは文字列じゃないの?
文字列だと "1" + "1" == "11" になるし、"130" < "2" になる。
数値として足したり比較したりする場合は parseInt や parseFloat で
明示的に数値に変換してから行う必要がある。

254:244
05/09/01 06:19:12 XAfx/g+1
>245,246
すごく参考になりました。
ありがとうございます!


255:249
05/09/01 08:21:06
>>253
ご指導のとおり
elems[i].style.display = flag ? "inline" : "none";
で出来ました。多謝多謝多謝。ありがとうございました。

256:Name_Not_Found
05/09/01 08:47:17
要素の子供をすべて消すためには、どうするのがいちばんいいでしょうか。
今は
var elem = document.getElementById('foo');
while (elem.childNodes.length > 0) {
elem.removeChild(elem.firstChild);
}
としているんですが、これよりスマートな方法がありましたら教えてください。

257:Name_Not_Found
05/09/01 09:21:48
>>256
var child;
while ((child = elem.firstChild))
elem.removeChild(child);
の方がループごとの子ノードの検索が一回になるので速いかも。
実装によるけど firstChild より lastChild の方が速いかも。
いずれもテストしてないので間違ってるかも。

258:Name_Not_Found
05/09/01 09:30:20
>>256
厨臭いのがアレだが一撃必殺

document.getElementById("foo").innerHTML = "";


259:Name_Not_Found
05/09/01 12:56:12
マナーの問題だとは思うのですが、
某企業のページ内で使われてたJavaScript処理部分がすばらしかったので、
どこかのフリーのものを転用してるのかと思ってソースを見たところ、
どうもオリジナルっぽかったんですが、
こういうのは使っても大丈夫なものなのでしょうか?

260:Name_Not_Found
05/09/01 13:08:15
> マナーの問題だとは思うのですが

死ねばいいと思うよ

261:Name_Not_Found
05/09/01 13:10:26
>はじめはstyle.display="none"にしておき
どうでもいいが、これはスクリプトをオフにしてたら見る事ができないと言う事か?

>>259
わからないように改造して使え

262:Name_Not_Found
05/09/01 13:39:06
>>260
オマエガナー

263:Name_Not_Found
05/09/01 13:45:49
技術だけを盗んでいくのがマナー
ソースをコピペしてはいけない

264:259
05/09/01 15:00:55
なるほど。
では技術を盗んで自分で作り直してみたいと思います。
でも似たようなものができあがりそうですよね・・・

265:Name_Not_Found
05/09/01 16:32:19
どうせ誰が作っても似たようなものになるんだ
それで文句言うのは、ブラウザスケジューラーの作者ぐらいだよ

266:Name_Not_Found
05/09/01 16:34:33 HE9OT77y
フォーム内のエレメントのエレメント番号を取得する方法を探しています。

あるエレメントにフォーカスが合っている時、規定のショートカットキーを押せば
対応したデータを入力し、次のエレメントにフォーカスが移る というのをJavaScriptで実現したいと思っています

エレメントの番号を何とかして取得して、その後はelements[i+1].focus();とかやれば簡単だろうと思ったのですが
リファレンスを読んでもどうやらエレメント番号を取得できるプロパティ、及びメソッドは無いようなのです

色々検索してみた所、エレメントにエレメント番号と同じidなりnameなりをあらかじめ与えておいて
それを取得する という方法で実現していたサンプルがあったのですが、
スマートさに欠け、保守の際に手間取りそうです

「無いから諦めろ」でも構いません
どうか一つお知恵を貸してもらえないでしょうか

ソースは次に書きます

267:Name_Not_Found
05/09/01 16:35:10
そうそう。まったくそのとおり。
万が一ソースがまるっきし一緒だったとしても
しょせんは確率なんだから。
たまたま一緒だったんですとかいえばOKだ。

268:266
05/09/01 16:47:21
bを押すと野球が選択され、次のエレメント(submit)にフォーカスが移ります
他の選択肢については省略しています
ブラウザ別の動作についても省略しています

<HTML><HEAD><TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function exampleFunction(keynum){
if(keynum == 71){
this.options[1].selected;
# 何らかの方法でエレメント番号を取得、iに代入
document.example.elements[i+1].focus();
}
}
--></SCRIPT></HEAD>

<body>
<FORM METHOD="POST" ACTION="./example.cgi" NAME="example">

<SELECT NAME="hobby" onkeypress="exampleFunction(event.keyCode)">
<OPTION VALUE=0>----
<OPTION VALUE=1>野球
<OPTION VALUE=2>ゴルフ
<OPTION VALUE=3>テニス
<OPTION VALUE=4>サッカー
<OPTION VALUE=5>バレー
<OPTION VALUE=6>ラグビー
</SELECT>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
</HTML>

269:266
05/09/01 16:49:43
ここまで書いて思ったのですがexamplefunction関数を2入力にして
エレメント番号を渡す手もありますね。
本質的にはidやnameでエレメント番号を設定しておく方法と変わらないので
あまり意味がありませんが…

長々と失礼しました。

270:Name_Not_Found
05/09/01 16:55:39
>>248
尾根

271:Name_Not_Found
05/09/01 19:16:49 XwJF/OTW
jsの関数を作るに当たり、フォームオブジェクト(テキストボックス:obj)のmaxlengthを取得したいのですが、
なぜかobj.maxlengthとしても取得できません。どのようにすれば良いのでしょうか。


272:249
05/09/01 19:28:42
すみません、再度質問です。ボタンを押したら<tr class="hide">が表示されたり隠れたりするようにしてみたのですが、
IE6だとうまく動いてFirefox1.06だと妙な動きをします。具体的にはテーブルが崩れたり、余計な行が追加されたりします。
これはFirefoxのバグでしょうか。自分では判断つきかねるので、詳しい方にアドバイスをいただければと思います。

<html>
 <head>
  <script type="text/javascript" language="javascript"><!--
   var flag_display = false;
   function toggle_display() {
    flag_display = !flag_display;
    var elems = document.getElementsByTagName('tr');
    for (var i = 0; i < elems.length; i++) {
     var elem = elems[i];
     if (elem.className == 'hide') {
      elem.style.display = flag_display ? "block" : "none"; // or "inline" : "none"
     }
    }
   }
  --></script>
  <style type="text/css"><!--
   .hide { display:none }
  --></style>
 </head>
 <body>
  <button type="button" onclick="toggle_display()">toggle</button>
  <table border="1">
   <tr><td>001</td><td>foo</td></tr>
   <tr class="hide"><td>002</td><td>bar</td></tr>
  </table>
 </body>
</html>


273:249
05/09/01 19:33:37
>>261
> >はじめはstyle.display="none"にしておき
>どうでもいいが、これはスクリプトをオフにしてたら見る事ができないと言う事か?

ええ、見れなくてもかまいません。見たい人だけが見れればよく、大半の人には必要のないデータなので、デフォルトでは表示しないようにしたいんです。
見たい人はスクリプトをオンにしてもらいます。
もちろんサーバを立ててWebアプリにすればスクリプトがオフでもできるんですが、今回は完全にstaticなファイルなんで、なんとかJavaScriptでしこしことやってます。


274:Name_Not_Found
05/09/01 21:01:58
>>268
こんな感じでいいの? 引数には event を渡して。
function exampleFunction(event) {
var target, keynum, elements, i, next;
if ((event || (event = window.event)) && (target = event.target || event.srcElement))
if ((keynum = event.keyCode || event.which) == 66 || keynum == 98) {
// keypress の場合、大文字と小文字は区別される
// this.options[1].selected; // これは誤り
target.selectedIndex = 1; // 野球を選択
if (target.form && (elements = target.form.elements))
for (i = 0; i < elements.length; i++)
if (elements[i] == target) {
if ((next = elements[i + 1]) && next.focus)
next.focus();
break;
}
}
}

>>271
maxlength じゃなくて maxLength
JScript では大文字と小文字は区別される。

>>272
<tr> 要素の標準の display は "block" じゃなくて "table-row"

275:256
05/09/01 22:30:50
>>257
ありがとうございます。こっちのほうがちょっとだけスマートですね。
firstChildとlastChildはどっちが速いんですかね。たしかに興味あるところ。

>>258
試してみましたが、たしかに一撃必殺ですね。JavaScriptチックなのがいいですね。
""でもいいけど、nullでもいいみたいです。どっちがいいんでしょう。

276:Name_Not_Found
05/09/01 23:08:30
>>273
そもそもそのHPを見たいって人がいない

277:271
05/09/01 23:44:33
>>274
ありがとうございます。
そういうところはJavaと似ているんですね・・・。

278:Name_Not_Found
05/09/02 00:12:32 WCwPzKTI
質問です。
外部jsファイルをイベントで読み込むにはどうすればよいですか。
<script src="js1.js"></script>
を読み込みたいです。IDを振って、src呼び出しではうまく行きません。

279:Name_Not_Found
05/09/02 00:50:01
>>273
そういうポリシーなら余計なお節介だけれども

display は無指定にしておいて
onload で一回関数を呼ぶだけじゃん

280:Name_Not_Found
05/09/02 01:01:56
>>266
c = this.nextSibling;
while( c ){
 if( c.nodeType == 3 ){
  c.focus();
  return;
 }
 c = c.nextSibling;
}

でいいんじゃね?試してないけど。

281:Name_Not_Found
05/09/02 01:35:11
>>280
function exampleFunction(ev){
ev = ev? ev:window.event;
if (ev.keyCode == 98){
ev.srcElement.selectedIndex =1;
c = ev.srcElement.nextSibling;

while( !c.focus ){
c = c.nextSibling;
}
c.focus();
}
}

282:266
05/09/02 01:50:23
たくさんのレスありがとうございました。
色々な方法があるようですので、これから一つ一つ確かめて どれが自分の目的に一番合っているか
確かめようと思います。

283:Name_Not_Found
05/09/02 07:41:38
>>279
まともな奴ならそうするね

284:249
05/09/02 10:27:39
>>274
table-rowでいけました!ありがとうございます。

>>279
それだと、JavaScriptをオフにしている人には全部見えてしまいます。
JavaScriptをオンでもオフでも、デフォルトでは見えないようにしておき、
見たい人はJavaScriptをオンにするようお願いしています。

>>283
スキルもないうえにまともじゃないです。ごめんなさい。

285:Name_Not_Found
05/09/02 11:05:55
要するに、誰にも見て欲しくないページな訳ですね

286:Name_Not_Found
05/09/02 12:41:43 wOPuXxzH
二つのセレクトメニュー「Select1」「Select2」があって、Select1を操作、onChangeで<div id="change_select">以下の「Select2」がごっそり違う内容に差し変わるようにしたいと思っています。
Select1でHOGEをえらぶと、Select2にはA,B,Cという選択肢そうでなければD,E,Fという具合です。
もう疲れ果ててしまいました。
まず、ブラウザによって、document.allだったり、documentだったりで、うまく動かない。
これは、なんとか調べて分岐処理するとしても、致命的なのは、ブラウザによってはinnerHTMLで書き出したSelect2の値をPOSTしてくれない事です。
そもそも、innerHTMLで、こういった事をどうにかしようというのがおかしいのでしょうか?
実際はSelect1,Select2の前後にもinputなどがあったりするので、その他の入力が消えてしまうので書き換えるわけにはいかないのです。
(もっともSelect1を選んだ時点で一旦postさせるって手もあるけど)
なにか代替案などありましたらアドバイスお願いします。

287:286
05/09/02 12:43:20
ソースはこんな感じ。(環境によっては動きません。)
■スクリプト部■
<script language="JavaScript" type="text/javascript">
<!--
function ChangeSelect(){
var val = document.all.hogeform.Select1.value;
alert(val);
if(val == "HOGE"){
change_select.innerHTML = "<select name='Select2'><option value=''>お選びください</option><option value='A'>A</option><option value='B'>B</option><option value='C'>C</option></select>";
}else{
change_select.innerHTML = "<select name='Select2'><option value=''>お選びください</option><option value='D'>D</option><option value='E'>E</option><option value='F'>F</option></select>";
}
}
//-->
</script>
■フォーム部■
<form name="hogeform">
<select name="Select1" onChange="ChangeSelect();">
<option value="" >お選びください</option>
<option value="HOGE" >HOGE</option>
<option value="HAGE" >HAGE</option>
</select>
<div id="change_select">
<select name="Select2" onChange="ChangeSelect();">
<option value="" >お選びください</option>
</select>
</div>
<input type="submit">
</form>

288:Name_Not_Found
05/09/02 13:13:05
>>286
過去ログに数回以上出てる。探せ!!!

289:Name_Not_Found
05/09/02 13:34:46
bookmarkletでページの中のボタンを押す事は可能ですか?

290:Name_Not_Found
05/09/02 13:52:06
>>289
はい。
自分でやって、わからないところをまた聞いてください。

291:Name_Not_Found
05/09/02 14:01:46
出来ますね。ありがとうございました。
javascript:document.forms[0].elements[0].click();

292:Name_Not_Found
05/09/02 15:35:47
onclick()じゃないの?

293:Name_Not_Found
05/09/02 15:44:49
やってみてから訊いてください。

294:Name_Not_Found
05/09/02 16:02:45
初心者スレで聞いてたのですが、こちらの方が正しかったのでこちらに書かせてもらいます。
URLリンク(javascript.eweb-design.com)
こちらのjavascriptでボタンではなく文字でウィンドウが開くようにするにはどうすればいいのでしょうか?
よろしくお願いします。

295:278
05/09/02 16:06:41 0kZeGiuL
>>278 お願いします。
--[再掲]--
質問です。
外部jsファイルをイベントで読み込むにはどうすればよいですか。
<script src="js1.js"></script>
を読み込みたいです。IDを振って、src呼び出しではうまく行きません。

296:Name_Not_Found
05/09/02 16:06:54 7eM0ktie
●アドバイスお願いいたします。
HPにアクセスして来たときに、
IEならページを表示させて他のブラウザ(ネスケやオペラ)なら
①"IEをご使用ください"と表示させる
または
②別のページに飛ばす
ということをしたいと思っています。
できれば、ブラウザのバージョンには
あまり左右されない方向で。

未熟者でお手数かけますが
どうぞ、よろしくお願いします。orz
(.htaccessでもできたりするんでしょうか?)

297:Name_Not_Found
05/09/02 16:20:09
>>294
こちらの方が正しかった?なぜ?初心者スレに最適な問題だと思うが?
<a href="#" onclick="hogehoge()">文字でウィンドウが開く</a>
てか、これHTMLの問題じゃんよ。ここで菊のはまだ早すぎるな。

298:Name_Not_Found
05/09/02 16:23:52
と、いいつつ答える297であった。

299:Name_Not_Found
05/09/02 16:27:44
>>296
Google屁行け。それこそ山のようにアドバイスがあるであろう。


300:Name_Not_Found
05/09/02 17:08:56 7eM0ktie
>>299
すいません、ありすぎて分からないんです。
まだHTMLを、やっとこ覚えたばかりなので
どれが正しくてどれがヤバいものやら。。orz

301:Name_Not_Found
05/09/02 17:09:48
初心者が難しいことしようとするもんじゃないよ。
経験経験

302:Name_Not_Found
05/09/02 17:16:25
>>278 >>295 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var s = document.createElement('script'); s.src = 't1.js';
document.body.appendChild(s);
}
</script>
</head><body>
<p><button onclick="test()">Test</button></p>
</body></html>

303:296=300
05/09/02 17:45:43 7eM0ktie
>>301
そ、そうですよね。。
とにかく色々やってみることにします。
ありがとうございました。
でわ。┌[-_-;]┐

304:296=300
05/09/02 18:13:14 7eM0ktie
お世話になります。>>296の②(ブラウザ判定して各ページに飛ばす)は
↓これでなんとかできたみたいです。

<SCRIPT LANGUAGE="JavaScript">
var ver = navigator.appVersion.charAt(0);
var ie = 0, nn = 0;
if (navigator.appName == "Netscape") nn = 1;
if (navigator.appName == "Microsoft Internet Explorer") ie = 1;

if (ie && ver >=3) location.href = "ie.html";
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";
</SCRIPT>

ちなみに、IEのときだけ別ページに飛ばさない
=このスクリプトを含むページのHTMLを表示するにはどう改造すれば
よいでのしょう?

教えてちゃんで申し訳ありません。
プログラムの仕組みを全く知らない初心者なので
よろしくお願いいたします。┌[-_-;]┐

305:Name_Not_Found
05/09/02 19:00:13
最近、ド肝を抜く感動のASCII-ARTがないね。
厨房ばかりで楽しみがそれくらいしかない、今日この頃。

306:296=300=304
05/09/02 19:15:51 7eM0ktie
とりあえずIEのときの実行命令(location.href = "ie.html"; )を削除してみたら
ブラウザ判定でIEだけ飛ばさないようにできたのですが、、
こっ、この記述は、、、正しいのでしょうか?
ド素人な質問でお恥ずかしいですが
間違ってるか合ってるかだけでも
教えて頂けるとありがたいのですが。。

if (ie && ver >=3) location.href = "ie.html";
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";

if (ie && ver >=3) ;
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";

307:294
05/09/02 19:52:37
>>297
有難うございます。
あちらでよかったのですね・・・すいません。
教えていただいた方法だとエラーが出てしまいました。
再度お願いします・・

308:249
05/09/02 20:46:44
>>285
どうしてこういう言い方するのかわかりませんが、ページのすべてを見せないようにしているわけじゃなく、
一部の人にしか必要のない箇所をみせないようにしたいだけです。

309:k
05/09/02 21:04:09
>>306

if (!(document.all && !window.opera)) location.replace( "not_ie.html" );


>>307

<a href="sample.html" onclick="openWindow()">ウィンドウが開く</a>

<a href="sample.html" onclick="openWindowC()">中央にウィンドウが開く</a>

310:296=300=304=306
05/09/02 22:12:49 7eM0ktie
>>309
kさん、ありがとうございます。
頂いた記述で動かすことができました。
えと、たぶん↓この使い方であってますよね?

<SCRIPT LANGUAGE = "JavaScript">
<!--
if (!(document.all && !window.opera)) location.replace( "not_ie.html" );
// -->
</SCRIPT>

すごく助かりました。(〃▽〃)ノシ ♪アリガトー

311:Name_Not_Found
05/09/02 22:18:03
>>307
エラーの出た行とエラーメッセージの内容を出さなければ
無視されるよ。>>297 自体はエラーなんか出そうもない単純さだしね。

312:Name_Not_Found
05/09/02 22:18:49
見たい人にjavascriptオンを強いるサイトなんてクソって事だ

313:Name_Not_Found
05/09/02 23:42:31
>>309
いい加減なコードを教えるな。ヴォケ
おまえも初心者スレ逝って、もう来るな。

314:310
05/09/03 01:07:55 rVCFx4qm
>>313
ええっ309サン違うんですか? ?(゚д゚;)三(;゚д゚)?アタフタオロオロ
どこをどう治せばいいんでしょう?


315:Name_Not_Found
05/09/03 02:55:12
>>308
素直に認証させれば?

316:Name_Not_Found
05/09/03 08:27:57
外部JSを呼び出すときにパラメータを渡すことってできます?
src=hoge.js?a=1
みたいな。できるとすれば、それをどうやって受け取ればいいんでしょうか?

317:Name_Not_Found
05/09/03 09:27:54
>>316
その書き方は通常、CGI にパラメータを渡すときに使う。
JScript で書かれた JScript のソースを吐く CGI というのもあり得るけど、
その場合はサーバー側で値を受け取るときだけに使うべき。
クライアントサイドのスクリプト同士であればグローバル変数を使えばいい。
HTML に <script> 要素はいくつでも含められる。
<script> 要素の src 属性から切り出すことも可能だけど、そんなことする
必要はほとんどないと思われ。

318:Name_Not_Found
05/09/03 09:38:06
>>317
よくわかりました
ありがとうございました~

319:Name_Not_Found
05/09/03 11:01:03
>>314
バカは氏んでも「治ら」ない、と思われ。
それもそうだけど、あのね、人さまに作ってもらったコードをわけもわからず
そのまま貼りつけて、動くとか動かないとか、それはちがうんじゃない。
クルマでもバイクでもロードに出るからには、メカを学ぶよね。故障しても
「直せ」ないのじゃ、どうしようもないと思うけど。

320:Name_Not_Found
05/09/03 11:06:56
Javaスクに対応していないブラウザってありますか?

321:Name_Not_Found
05/09/03 11:31:20
携帯電話のブラウザはJavaScript使えない

322:310
05/09/03 11:33:48 rVCFx4qm
>>319
JAFになっていただければ幸いですorz

323:Name_Not_Found
05/09/03 12:32:46
よし。おれが、そのJAFになってやろう。入会金と年会費を払いな。
入会金=3万円。年会費=12万6000円(消費税込み)。
年何回書き込んでも定額だが、板のルールに従わない場合は無視される。


324:Name_Not_Found
05/09/03 12:41:59
入会するには名前の欄にfusianasan、これお約束

325:Name_Not_Found
05/09/03 13:12:17
>>310 >>2
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。


326:Name_Not_Found
05/09/03 13:24:53
それ系の掲示板とかフォーラムで
タイトルに「初心者です」とか「教えてください」とかするヤツ。
これ最悪。
どんな質問であっても過去ログという財産になるのにタイトルでもう台無し。

327:Name_Not_Found
05/09/03 14:30:28
その点2ちゃんは書き込みにタイトルがないのがいいよね。
直に質問内容で検索すれば済むし。

328:310
05/09/03 14:40:33 rVCFx4qm
>>325-326
はい、気をつけます。ありがとうございます。
昨日から素人なりに勉強してみましたので
アドバイスいただければ幸いです。

やりたいこと:
Win+IEのユーザならそのページを表示させ、
それ以外のユーザなら別ページを表示する。

一番気になるのは3行目で、
「IEなら単にそのページを表示」させたいとき、
(…)と ; の間には何も書かなくて良いのか、ということなのですが。。

<SCRIPT LANGUAGE = "JavaScript">
if(navigator.userAgent.indexOf('Win') != -1) location = "other_os.html";
else if(navigator.appName == 'Microsoft Internet Explorer') ;
else location.href = "other_browser.html";
</SCRIPT>
<BODY>
WELCOME
</BODY>

どうぞよろしくお願いします。

329:Name_Not_Found
05/09/03 15:03:32
>>328
UA で振り分けなければならない理由は何なのかな ?
Script 自体は難しくはなくても, 問題が多すぎると思わない ?

1. アクセスしたとたんに勝手に飛ばされるのは良い気がしない.
2. ファイル数が増えるので管理が極めて面倒になる.

>(…)と ; の間には何も書かなくて良いのか、ということなのですが。。
無意味な1行になっているとだけ言っておく.

330:Name_Not_Found
05/09/03 15:06:20
>>306=>>319
カチンとくるのはわかる。
でも動かないものは動かなかったんだ。残念。

331:Name_Not_Found
05/09/03 16:42:08
>>328
そこには「何も書いてない」わけじゃないぞ。「;」つまり
何も動作をしない、という文が書いてある。IEの時は特に
飛ばさない、つまり「何もしない」のだからこれで正しい。
気持ち悪いのなら次のような書き方にすれば?
if(...)
__....;
else if(...)
__;
else
__.....;
あるいはちゃんt「{}」で囲んで(その場合は「;」も不要)、
if(...) {
__....;
} else if(...) {
__// do nothing ←不安だったらこういうコメントを入れる
} else {
__....;
}

>>329
無意味な1行っていうのはずいぶん適当であやふやな言葉だよな。
JSの言語仕様にもそんな用語はないし。ブラウザ判別と振り分け
の是非について論じたいのならここじゃなくどっか別のとこで
やった方がいいんじゃないか。迷惑ページってわけじゃないんだ
しよく知られている技法なんだから「質問者の裁量」でいいだろ。

332:Name_Not_Found
05/09/03 17:19:35
>>331
条件判断だけをやって何もやらないのは
Syntax として間違っていなくても いかがなものだろうか?
>>328 はつまるところ IE と それ以外を振り分けているだけ.
ならば, やり方は ほかにもあると思うけどなぁ~.

ぼくは 余計な仕事をさせないのがスマートだと信じてる.

333:Name_Not_Found
05/09/03 17:31:20
if(navigator.userAgent.indexOf('Win') != -1) location = "other_os.html";
if(navigator.appName != 'Microsoft Internet Explorer') location.href = "other_browser.html";
これは空気読めてない?

334:Name_Not_Found
05/09/03 17:58:02
ブラウザの判別も navigator.userAgent でいいんでないかな。
if(navigator.userAgent.indexOf("IE") == -1 ){
location.href = "other_browser.html";
}
な感じで。
("MSIE"だとIE7が不安なのでMS抜いてみました。関係なかったらすまぬ)

335:Name_Not_Found
05/09/03 18:05:30
3.UA は自己申告制; 必ずしも正しく振り分けられない;

336:Name_Not_Found
05/09/03 18:38:30
This script checks for specific types and versions of browsers (hence, it's fussy).
In this example, it's set to test for Netscape 4.05 for Windows and Netscape 4.6
for Macintosh. If the user has either of these browsers, they'll receive one alert
message. If not, they'll receive another. You can set the browser types and the
actions to anything you want. For instance, you can block users for a certain page
unless they're using a certain browser.


337:Name_Not_Found
05/09/03 18:59:32
無意味な1行というよりも、この議論そのものが空疎ではないのか。
盲人の周りに十数人も集まってきて、こっちだあっちだと言い合っている気がする。
次の質問のかたー、どぞーっ。

338:Name_Not_Found
05/09/03 19:03:36
>>337
聖徳太子だから平気。

339:Name_Not_Found
05/09/03 19:21:28
null うざす

340:Name_Not_Found
05/09/03 19:45:22
まぁnullの言ってることは正論なんだが、レベルが高すぎるんだよ。
それとたまに暴走するのが傷だな。
それを直せばいいやつなんだが。

341:Name_Not_Found
05/09/03 19:50:44
>>340
レベル高くないだろ。

342:Name_Not_Found
05/09/03 22:00:55
>>332
「振り分ける」というのは均等なif-else ifの構造で書く
のが美しい。その中で何をやる/やらないに影響されない
方がいいと漏れは思っているけどね。しかしこんな議論じゃなく
普通の質問こないかなあ。

343:Name_Not_Found
05/09/03 22:43:09
nullは無視しよう!
反応したら負けだ!
「。」のかわりに「.」を使ってるやつはnullだよ!

344:Name_Not_Found
05/09/03 22:50:34
>>332
それは null が JavaScript しか知らなくて
複数人での開発をしたことがないからだろ。

C とかだと空文で while を回す処理だって時々あるし。
最適化処理はコンパイラかインタプリタの仕事。

コーディングは人間が考える順序をそのままに記述した方が
遙かに可読性がいい。

345:Name_Not_Found
05/09/03 23:22:30
nullもまだ知識が足りなかったってことだけだろ。
別にいいじゃない。コテはずしたんだし。
個人的には、昔みたいな空気読めないオナニーレスがなくなったから
OKとするよ。引き際を覚えたんだろ。

346:Name_Not_Found
05/09/03 23:25:53 q8D1sZDU
質問です。
JAVAアプレットになかなかよいのがあるので自分のウェブページで使いたいのです
が、UPすると動きません。元々初期動作に時間がかかりイマイチとは思っているの
ですが、JavaScriptを使って普通に動作させる方法などありますか?


347:Name_Not_Found
05/09/03 23:37:09
ありません

348:Name_Not_Found
05/09/04 00:16:08
divでくくった部分のbackground画像をランダムで変更したいんですが
そのスクリプト部分を外部jsファイルか、出来ればhtmlはそのままにCSSで記述したいのです。
シンプルにやるいい方法ありませんか?

349:Name_Not_Found
05/09/04 00:54:00
あります

350:Name_Not_Found
05/09/04 01:33:09
>>348
外部だろうと内部だろうとJSの場合コードそのものは同じだから。
それでページが表示されるごとにだけランダムに選べばいいのか
一定時間ごとに表示中の背景がランダムに取り代わるのかどちらか
はあなたの説明だと不明確だと思うんだが。

351:Name_Not_Found
05/09/04 04:14:55
insertBeforeやappendChildで、
既存ノードのcloneNodeを挿入することは、普通はできないものなのでしょうか?
IEやOperaでは動作しませんでしたが、Firefoxでは動作しました。
代替手段としてinnerHTMLを使用していますが、
それ以外で何か手段があれば、教えていただけると幸いです。

352:348
05/09/04 09:46:53
>>350
失礼致しました。
表示ごとに背景が変わるようにしたいのです。
jsでbackgroundをリロードするごとに変更するというスクリプトはあるみたいなんですが、
それを外部に切り出すやり方が…_| ̄|○

353:Name_Not_Found
05/09/04 10:14:17
>>352
うざい。初心者スレへ逝け!!
あんた、いつも間抜けな初歩的質問してはバッタリ倒れてる人だね。

354:Name_Not_Found
05/09/04 10:15:28
確かに_| ̄|○これはかなり腹が立つな
自分で調べろクズ

355:Name_Not_Found
05/09/04 10:27:05
>>351
IE のバージョンによりますが 5 以上なら普通はできるものです。
ただし insertBefore, appendChild する要素によってはできない
ものがあります。
内容として出現が認められない場所に挿入しようとしていないか、
また、cloneNode したものの id が既存のものと重複していないか
確認してください。

>>352
基本的に <script> の内容をそのまま外部ファイルにするだけです。
それ以上、説明のし様がありません。
<script> の内容は空にして src 属性で外部ファイルの URI を
指定します。
外部ファイルの HTTP ヘッダで文字コードが明示されない場合は
charset 属性も指定してください。
過去のブラウザのバグを回避するため <script> と </script> を
密着させてはいけません。スペース一つ入れてください。

356:348
05/09/04 10:35:37
すいませんでした。もう少し自分で調べてきます。

357:348
05/09/04 10:37:19
>>355
ご親切に回答ありがとうございます。それだけでも参考になります。
ありがとうございました。

358:351
05/09/04 13:47:33
>>355
どうもありがとうございます。
もう少し試行錯誤してみます。

359:Name_Not_Found
05/09/04 14:37:41
>>355
<script src=...></script>がダメなブラウザなんてあったの。初耳。
どのブラウザで、どういう問題が起きるのか説明キボン。

360:Name_Not_Found
05/09/04 15:15:08
#なんか、他人をけなさずにはおれない人が多いようで。

>>312
外部に公開するページではなく、社内の内輪で使うドキュメントなので問題ないです。

>>315
WordのかわりとしてHTMLを使っているだけなので、サーバを立てるという手段はとれません。

そう書いてるんだけど、読み飛ばされてるよorz


361:Name_Not_Found
05/09/04 15:22:32
終わった話をいちいち蒸し返すな。馬鹿は放置しろ。

362:Name_Not_Found
05/09/04 15:43:26
>>360
自意識過剰ですね
書かれている事が全て自分に対しての事だと思ってるのですか?

363:360
05/09/04 16:35:29
自意識過剰で悪かったですね。基本的に自分は無視されないと思っています。

私の言葉は他の人とちがって一語一語選んで書いていますので、細心の注意を
払ってほしいです。社内の電子文書だということやHTMLの目的など私の言った
ことをよく読んでいれば、>>312>>315のような誤解は絶対に生じない筈です。
読み飛ばす人は、けっこう自分の社内でもそこらへんで上司のかたから注意を
うけているのでしょうね。答えを書く前に、自分の文章を何度も読み返してみ
ると、こういうまちがいは防ぐことができますよ。

364:Name_Not_Found
05/09/04 17:19:46
馬鹿はこっちだった

365:Name_Not_Found
05/09/04 17:22:47
>>363
なんか妄想だらけの文章ですね。
若者に説教をしている、おじさんみたいな感じで少し嫌ですわ。

前のほうのレスを読む気はないので、、
>>360>>363だけの内容でレスさせていただきます。

>外部に公開するページではなく、社内の内輪で使うドキュメントなので問題ないです。
このような目的ならファイルサーバを使えばいいのでは?
わざわざJSで小細工する意図がわかりません。
見たい人が見るようにするのなら、特定のディレクトリを作って、
そこにアクセスしてもらえばいいだけでしょ?

>サーバを立てるという手段はとれません
会社にもないんですか?
PCを会社で使っているとするならば、変わった会社ですね。

社内で電子文章を扱う機会が多いなら、
会社にサーバを導入するように、上司に提言すべきですよ。
私の会社では、ちょっとしたものならメッセンジャーで送りますがね。

366:360
05/09/04 17:30:22
分かってくださればそれでいいのです。私の意見を聞けるだけでも何かの進歩
に繋がるはずです。ただ、他人をけなさずにはおれない人が多いようなので、
一言申し上げただけですので。



367:Name_Not_Found
05/09/04 17:34:05
>>363
>>312はあなたに対する意見じゃないので、>>312に過剰反応するから自意識過剰と言われてるのですよ

368:Name_Not_Found
05/09/04 17:35:36
>私の意見を聞けるだけでも何かの進歩 に繋がるはずです。
そういうこというから自意識過剰って言われるんですよ。
正直あなたの意見なんてなんの進歩にも繋がりません。
マイナス要素だらけです。
厳しい意見があってこその進歩。
たとえそれが罵倒混じりであっても、助言として受け入れるべきです。
それがわからないあなたは一生進歩できませんよ。

369:Name_Not_Found
05/09/04 17:51:57
>>363
誰ですか?

>>365
>このような目的ならファイルサーバを使えばいいのでは?
>わざわざJSで小細工する意図がわかりません。
「JSで小細工する」ことと「ファイルサーバを使う」ことの関連がわかりません。
ファイル形式として何を使うかという話と、ファイルサーバを使う・使わないという話は関係がないと思います。
それからファイルサーバは使ってますよ。誰もファイルサーバを使ってないとは書いてません。Webサーバを立ててないだけです。

>見たい人が見るようにするのなら、特定のディレクトリを作って、
>そこにアクセスしてもらえばいいだけでしょ?
それだと、「通常必要なデータだけを書いたファイル」と「詳細なデータもすべて含んだファイル」の2つを用意しないといけなくなりませんか。
そんな面倒なことしなくても、「詳細なデータもすべて含んだファイル」をひとつだけ用意し、通常は必要とされない詳細なデータが見えないようになっているほうが、ドキュメント作成の手間も、管理の手間も少ないと思います。

> >サーバを立てるという手段はとれません
> 会社にもないんですか?
> PCを会社で使っているとするならば、変わった会社ですね。
社内で勝手にサーバを立てることは禁止されています。また情シスに申請しても、なかなか通りません。
個人情報保護法やプライバシーマークにきちんと取り組み、情報漏えいに気を使っている会社なら、自由にサーバを立てられないほうが普通だと思いますが。

>社内で電子文章を扱う機会が多いなら、
>会社にサーバを導入するように、上司に提言すべきですよ。
ファイルサーバのことでしょうか。Webサーバのことでしょうか。

> 私の会社では、ちょっとしたものならメッセンジャーで送りますがね。
ファイルサーバがなければメッセンジャーを使ったらどうかという提案ですか?意図がよくわかりません。

> 若者に説教をしている、おじさんみたいな感じで少し嫌ですわ。
偶然ですね。私もおなじように感じました。

370:Name_Not_Found
05/09/04 18:14:29
>>369
JSになぜそこまでこだわる?
>Webサーバを立ててないだけです。
内部のやり取りなら、Webサーバ立てる必要もないだろ。
Web上で閲覧するということにこだわる意図がわからない。
別の方法があってそっちが適切ならそっちを選ぶべき。

>「詳細なデータもすべて含んだファイル」をひとつだけ用意し・・・
できもしないのにこの言い分は理解できない。
自分の技量を考えて発言すべき。

>個人情報保護法やプライバシーマークにきちんと取り組み・・・
JSでどうにかしようとしているやつが言うべき言葉ではない。

とりあえず感じたこと。よほど暇な会社なんだな。

371:Name_Not_Found
05/09/04 18:23:02
ほっとけよ、こういう奴をわざわざ教育してやる必要なぞ無いだろ。
一度痛い目にあった方が、こういう奴にとっては為になるよ。

372:Name_Not_Found
05/09/04 18:27:36
   ∩∩
   | | | |
  ( ゚ω゚)  <しけんはんい ここまで
  。ノДヽ。    
   bb

373:Name_Not_Found
05/09/04 18:44:36
おかしい奴はスルー。2ちゃんの基本。

374:Name_Not_Found
05/09/04 18:48:27
流れをぶったぎるような質問お待ちしています。

375:Name_Not_Found
05/09/04 18:51:35
今反論するために>>369が必死に調べまわっています。
粘着レスまで数時間お待ちください。

頼むからもうこないでね。

376:Name_Not_Found
05/09/04 22:14:18
これでもJavaScript書かせればそこそこの連中なのに、なんか、くだらんヤシ
相手に技量と時間の浪費をしているなあ。
(これを俳句にしたいのだがうまくできない。云々浪費かな、まで)場所汚

377:Name_Not_Found
05/09/04 22:17:28
結局このスレの存続はいい質問が来るかどうかに掛かっている。
それは最初から分かっていることさ。まあ暇つぶしについては
各自の勝手ということで。

スクリプト 書きたいけれど ネタはなし

378:Name_Not_Found
05/09/04 22:26:14
じゃあお題

メニュークリックするとペローンとしたに伸びるやつ作って。
ドロップダウンメニュー?プルダウン?ナビゲーションメニュー?
名前よくわからないけど、Flashでよくあるやつ。

ディレイをうまく操作してFlashにより近いものよろしく。

379:Name_Not_Found
05/09/04 22:42:19
(´_ゝ`)

380:Name_Not_Found
05/09/04 23:44:14
>>378
そういうのはいくらでもあるから検索して探せば。ちっとも新しくないし行数は
多いからここに貼れないしね。質問としては5点。

381:Name_Not_Found
05/09/04 23:49:35
>>380
2kb以内32行で作ってみせろよ!

382:Name_Not_Found
05/09/04 23:53:58
>>381
おれは1行で書ける自信がある

383:Name_Not_Found
05/09/04 23:55:16
よしじゃあ1行でもいいから2kb以内に収めてくれ。
読みづらいソースはカンベンな?

384:Name_Not_Found
05/09/05 00:03:46
まあ、メニュー部分やメニューボタン部分を全部HTMLや画像で用意
して動かすだけならたいしたことはないが、汎用のメニューライブラリ
としてパッケージするとなると大変になるな。

385:Name_Not_Found
05/09/05 00:05:20
>>366
だから誰なんですか。

>>368
> 厳しい意見があってこその進歩。
厳しい意見はなかったように思います。あったのは、勘違いした意見とか、あおるための意見とか、とりあえず相手をたたくための意見とか。

>>367
そうですか。それは失礼しました。あまりにタイミングと内容が重なってたので勘違いしてました。
じゃあどなたへの意見だったのでしょうかね。ただの独り言だったのかな。

>>370
>JSになぜそこまでこだわる?
別にこだわってないです。無料で使えることとか、手軽さとかを考慮したら、HTMLとJavaScriptとがいちばん適切かなーと思っただけです。

>内部のやり取りなら、Webサーバ立てる必要もないだろ。Web上で閲覧するということにこだわる意図がわからない。
これも別にこだわってないですけど。「ぜったいにWeb上で閲覧したい」なんて一回も書いてないんですけど、どの書き込みからそのように感じたのでしょうか。

>別の方法があってそっちが適切ならそっちを選ぶべき。
そりゃそうです。ほかに適切な方法があれば当然そっちを選びますよ。
でも今までいわれた意見はどれも適切じゃなかったから、その理由を説明しただけです。それを「粘着」とかいわれてもねえ。

>できもしないのにこの言い分は理解できない。自分の技量を考えて発言すべき。
>>253と274のおかげでできました。それとも、「できもしないやつは質問するな」という意味ですか。

>JSでどうにかしようとしているやつが言うべき言葉ではない。
意味わかんないです。文脈から外れてますよ。
「情報漏えいを防ぐために、会社で用意したファイルサーバを使用し、勝手に他のサーバを立てない」という話なんですけど、それとJSとどう関係があるんでしょうか。

>とりあえず感じたこと。よほど暇な会社なんだな。
今は暇かも。

386:Name_Not_Found
05/09/05 00:07:50
   ∩∩
   | | | |
  ( ゚ω゚)  <しけんはんい ここまで
  。ノДヽ。    
   bb

387:Name_Not_Found
05/09/05 00:15:21
>>375
5時間ぐらい考えてたのかw

388:Name_Not_Found
05/09/05 00:16:27
揚げ足取りに対してのレスしかできなく、本質的なとこには触れない。
これ最凶。

389:Name_Not_Found
05/09/05 00:39:25
>>385
空気読めない粘着気質 まで読んだ

390:Name_Not_Found
05/09/05 00:40:28
ともかく厨房は放置でよろ。レスの無駄使いだからね。

391:Name_Not_Found
05/09/05 00:46:29
そもそも、なぜJSでやろうと思ったのかな?
自分でできない事をやると言ってひっこみつかなくなって、ここで聞いたソースをコピペして会社で自慢してるのかな?

392:Name_Not_Found
05/09/05 00:58:29
一言だけどうしてもいいたいんだ!ゆるしてくれえ。

>それだと、「通常必要なデータだけを書いたファイル」と
>「詳細なデータもすべて含んだファイル」の2つを用意しないといけなくなりませんか。
>そんな面倒なことしなくても、「詳細なデータもすべて含んだファイル」をひとつだけ用意し、
>通常は必要とされない詳細なデータが見えないようになっているほうが、
>ドキュメント作成の手間も、管理の手間も少ないと思います。

ここの部分。管理の手間でいうならあきらかに分けたほうが楽だと思うんだけどね。
ソースもごちゃまぜにするよりはわけたほうが見やすいしね。
作成の手間っていうのも、データを通常と詳細の2分割にすればいいだけだし・・・
漏れなら、サーバサイドスクリプトで詳細データ書き出して、
html側で表示ボタンでも作ってそれを押したら、詳細データ出るようにするけどな。

レス消費しちゃってゴメンネ。。。質問がくれば頑張って答えるから許してくんろ。

393:Name_Not_Found
05/09/05 01:03:58
>>392
> 漏れなら、サーバサイドスクリプトで詳細データ書き出して、

内向けの Web 鯖はないそうだ。

「分けたほうが楽」には同意。
自分以外の人がデータをいじる必要が出てきたときに
JS で(普通の人にとって)トリッキーなことをしてると却って手間が増えるわけで。

394:Name_Not_Found
05/09/05 01:11:13
まああれだ。

普段外向けのサイトを作成している人たちにとっては
JS Off でもそれなりに見られるようにしておくのはマナーのようなもんで。

そういった配慮をする必要のない内向けのドキュメントでも
「とりあえずそうしておく」というのは
何というか職人気質のようなもんだね。

「とりあえずそうしておく」ことを理解しない彼とこのスレの住人との
意見の一致を見ることはないのだろうね。

395:Name_Not_Found
05/09/05 01:15:02
内の人でも、JSオンにしなきゃならないなら見なくてもいいやって人がいるかも知れんしな

396:Name_Not_Found
05/09/05 01:21:33
いい解決方法を教えてあげよう。
一通りかきおわったら、必殺連続<br>で、その下に詳細を書いていくと。
IEでしか見るなよ。と注意書きすれば完璧。

397:vol.37-663より 愛を込めて
05/09/05 06:47:39
久し振りに荒れたな。
そろそろ俺の出番か?

398:Name_Not_Found
05/09/05 07:49:40
引っ込みがつかなくなってるのはどっちもどっちだな。
社内の話なんざ他人が口出す問題じゃないだろ。学生しかいねーのか。

399:Name_Not_Found
05/09/05 08:26:07
引っ込みがつかなくて喧嘩続けるてのがそもそもガキなんだろ。
どっち側も同じこと。迷惑な。

400:Name_Not_Found
05/09/05 10:16:28
チンむくは菌

401:Name_Not_Found
05/09/05 11:09:06
質問でございます。
外部に格納されているファイル(テキストファイル)内の文字(例えば日付等)を
読み込んで、画面上の指定した位置にテキストとして表示させるには
どのような記述になりますでしょうか?

どなたか、ご教授お願いいたします。

402:Name_Not_Found
05/09/05 11:11:34
>>401
Hawk's W3 Laboratory : XML : XMLHttpRequestについて
URLリンク(www.hawk.34sp.com)

403:Name_Not_Found
05/09/05 13:04:33
>>401
そのテキストファイルはサーバ上にあるのね?ローカルなら不可能。
ファイルをサーバから読み込むのはXMLHttpRequest()等を使う。
その文字列から必要な部分を取り出し、表示させたいとこには
divでもおいてIDを振り、innerHTMLに書き込む。

これで分からないなら自分で勉強してくれ。全部書く気はない。
過去ログ読めば沢山例の出ているアタリマエなことばっかりだから。

404:Name_Not_Found
05/09/05 13:08:36
>>401
過去ログvol.35のno.489を見れ。過去ログの検索できなきゃ駄目よ。

405:Name_Not_Found
05/09/05 14:13:47 JptN4bkY
チェックボックスにチェックを入力しないとテキストエリアに
書き込めない処理をネットで調べて以下のように書きました。
更新ボタンのform actionを*1の位置にすると上のテキスト
エリアが一切入力不可になります。
*2の位置ならば入力は可能ですが、値が飛ばせなくて悩んでいます。
*1か*2でうまくする方法、または別の方法があれば教えて頂けないでしょうか


406:405
05/09/05 14:15:09 JptN4bkY
<HTML>
<HEAD>
<script Language="JavaScript"><!--
function setTF(cOBJ,fName){
document.myFORM[fName].disabled = !cOBJ.checked;
}
function setTF1(cOBJ1,fName1){
document.myFORM1[fName1].disabled = !cOBJ1.checked;
}
--></script>
<TITLE>一覧</TITLE></HEAD>
<BODY>
<FONT size="4"><B>更新したい項目を選択して</B></FONT><BR>
<FONT size="4"><B>新しいデータを入力してください。</B></FONT><BR>
<form name="myFORM">
<input type="checkbox" onClick="setTF(this,'name')">名前:(15文字まで)
 <input type="text" size="15" name="name" disabled>
</form>
<form name="myFORM1">
<input type="checkbox" onClick="setTF1(this,'ad')">住所:(30文字まで)
<input type="text" size="30" name="ad" disabled>
</form>
<FORM action="" method="post">
<INPUT type="submit" value="更新" >
</FORM>
</BODY>
</HTML>

407:Name_Not_Found
05/09/05 14:28:04
>>405
事情がよくわからんのでアレなんだけど。
なんで、form要素がわかれているのかね?

408:Name_Not_Found
05/09/05 14:34:17
>>406
ひねたコードだなあ。

409:405
05/09/05 14:39:05 JptN4bkY
最近勉強始めたばかりなので答えになってないかも
しれませんが、名前だけ更新、名前住所更新、住所だけ更新が
出来る様にしたいため、それぞれのチェックボックスと
テキストエリアを結合?させたいのです。

410:Name_Not_Found
05/09/05 14:51:48
テキストエリアをディザブルするより、テキストエリアじゃ無くしてやった方が判りやすいと思うよ

411:405
05/09/05 14:58:38 JptN4bkY
>410様
申し訳ありません。おっしゃってる意味が分からないです。


412:Name_Not_Found
05/09/05 15:03:13
>>410
ディザブルって何?disable?disableならさすがに通じないよ

>>411
じゃあ調べろよ

413:Name_Not_Found
05/09/05 15:20:15
>>405
脳内ブラウザでしか試してないのでアレですが。
<script type="text/javascript">
function func(obj,target_id){
var target = document.getElementById(target_id);
target.disabled != obj.checked;
}
<script>

--

<form method="post" action="foo/var/">
<input type="checkbox" name="" value="" onclick="func(this,'nam');">
<input type="text" name="nam" value="" id="nam">
<input type="checkbox" name="" value="" onclick="func(this,'add');">
<input type="text" name="add" value="" id="add">
<input type="submit" name="" value="更新">
</form>


>>410
でぃすえいぼー、だね。

414:405
05/09/05 15:33:22 JptN4bkY
試してみます。ありがとうございました。

415:Name_Not_Found
05/09/05 15:38:03
ちゃうちゃう。ディスエイブル、やがな。
ディ・ス・エ・イ・ブ・ル、わかった?
なんなら、ディスエーブルでもかまわへんけど、「ぼー」だけはやめとき。
そんなん亜米利加で通じへんがな。わかったん?

416:405
05/09/05 16:45:52 JptN4bkY
>410,413様
なるほど、この方法なら値を飛ばせますね。
でも、一番やりたい事はテキストボックスを入力規制することです。
406で一番悩んでいるのは、どうやって値を飛ばすかです。
実現不可能か可能かだけでも知りたいです。
わがままばかりで申し訳ありません。




417:Name_Not_Found
05/09/05 16:52:05
>>415
大阪弁:9点
キャラ作り:5点
ネタ作り:2点

418:Name_Not_Found
05/09/05 16:59:47
>>405
チェックボックスが有効なテキストボックスを、XMLHttpRequestでPOSTでもしたら?
はたしてそこに愛がるのか知らんけど。

419:Name_Not_Found
05/09/05 17:00:17 en6nGUp0
質問です。
数字を4ケタにそろえて、0001から9999までの番号を作ります。
このとき、任意の番号(例えば、0083、0518など)でのアタマ
のゼロを除いた数字だけを取り出したいのですが、簡潔なスクリ
プトはどう書けばよいでしょうか。
ゼロの排除のしかたが今一つ洗練された形にできません。
よろしくお願いします。

420:Name_Not_Found
05/09/05 17:09:42
ディッセエィボウ
これがただしい発音だがや

421:413
05/09/05 17:24:33
>>416
本物ブラウザで確認しながらやってみた。
■スクリプト
<script type="text/javascript">
function func(obj,target_id){
var target = document.getElementById(target_id);
target.disabled = (obj.checked) ? false : true;
}
</script>
■html
<form method="post" action="foo/var/">
<input type="checkbox" name="" value="" onclick="func(this,'nam');" checked>
<input type="text" name="nam" value="" id="nam">
<input type="checkbox" name="" value="" onclick="func(this,'add');" checked>
<input type="text" name="add" value="" id="add">
<input type="submit" name="" value="更新">
</form>

> 一番やりたい事はテキストボックスを入力規制

チェックされていない場合、disableになるはず。
MacIEもSafariも大丈夫だったんで、まあ、およそ大丈夫だと思う。

> 一番悩んでいるのは、どうやって値を飛ばすか

ふつうにサブミットすればいいじゃん。
いかんの?

422:Name_Not_Found
05/09/05 17:26:50
>>420
でぃっせいぼぅ!
<URLリンク(dictionary.goo.ne.jp)

423:Name_Not_Found
05/09/05 17:28:30
>>419
Number(bango)かな。parseInt(bango) だと 8 進法に解釈されるね。
ただ、0001 から 9999 まで作るより 1 から 9999 まで作って 0 足した方が楽じゃないだろうか。

424:Name_Not_Found
05/09/05 18:07:10
さてと、5匹釣れたし、大雨らしいからここいらで帰るとするか。
それにしても、きょうの「ディザブル」という餌はサカナの引き
がちがってたなぁ。でも、まあ、二度は塚円な。

425:419
05/09/05 18:27:59
>>423さん
alert(Number(bango))で確かめると、
bango=0125--->85
bango=0021--->17
bango=0101--->65
で、わっけわかりません。
私は、substring()で愚直にゼロを排除していたのですが、他にスマートな
方法はありますか?

426:Name_Not_Found
05/09/05 18:31:42
"0021".replace(/^0*/,'');

427:Name_Not_Found
05/09/05 18:47:50
a hrefのスレ思い出した

428:Name_Not_Found
05/09/05 19:00:42
あんかーはいぱーてきすととらんすふぁーぷろとこるりふぁらー

429:k
05/09/05 19:18:55
>>425
0xxx -> 8進数 と解釈されて 10進数で表示されている為。
0 で減算し形変換させるのがお奨め。

// e.g.
var n = "0123"; // -> string
n -= 0; // n -> 123 -> number


430:419
05/09/05 19:25:44
>>426さま
ネ申。
ありがとうございました。多謝^100
 

431:405
05/09/05 19:29:45 JptN4bkY
>413様
form1つの中に全部入れちゃえば悩む必要はないですね。
javaScriptは最近始めたので勘違いしてました。
解決しました。ありがとうございました。

432:Name_Not_Found
05/09/05 19:36:55
>>431
> javaScriptは最近始めたので

最近始めたのはJavaScriptだけか?

433:419
05/09/05 22:12:50
>>429 kさん
ありがとうございました。うーん、なるほど、です。多謝^100


434:Name_Not_Found
05/09/05 22:35:35
parseInt("00123", 10);

誰にでもわかりやすく書いたほうがいいんじゃね?

435:Name_Not_Found
05/09/05 22:54:04
そもそも >>429 のやり方で8進に解釈されることが防げるという
保証は何もない。だいたいがECMAでは8進リテラルがないもんで
仕様のチェックしようがないけど、16進数の形をした文字列の
場合は16進数として解釈されちゃうよ。

436:405
05/09/05 23:04:13
>>432
すいません
生まれてきたのも最近です

437:Name_Not_Found
05/09/05 23:41:26 LlRij0dh
javascriptで特定のキー(たとえばF2)で特定のボタンを押下する
といった処理はどのように実装すればいいでしょうか?

438:Name_Not_Found
05/09/05 23:49:11
こんばんは。
履歴を残さない方法って、location.replace()以外はないんでしょうか?
目的は上記方法以外で、特定のページで戻るボタンを使用不可にしたいんですが。。。


439:405
05/09/05 23:52:58
>>438
>>1

440:Name_Not_Found
05/09/06 01:01:42
>>437
そのボタンというのが米軍のミサイル発射ボタンとかだったら
絶対できないが、Webページに表示されているボタンとかなら
押したと同様の効果を持たせることはできるかも。(1)キーイベント
を取るようにする、(2)F2キーに対応するキーコードを調べ、その
コードの時だけ、(3)ボタンのonclickと同じ動作をさせる。フォーム
の提出とかそういうボタンならsubmit()を呼ぶとか適宜対応。
>>438
location.replace()以外の方法はありません。履歴を操ることは
セキュリティ制約により禁止されているので。

441:k
05/09/06 01:09:25
>>435
> だいたいがECMAでは8進リテラルがないもんで仕様のチェックしようがない

書かれてイナイということはつまり8進数は解釈の対象にならない。
そう考えるのが自然と思われ。
10進数 > 16進数 > 越えられない壁 > 8進数
確かに明示的に書かかれていないので保証は何もないが

442:Name_Not_Found
05/09/06 01:54:38
>>438
ブラウザの戻るボタンが効かないウェブページがたまにあるよね。
その度にページを閉じてやり直し。ユーザーの自由を制限する迷
惑設定以外のなにものでもない。
理由はどうあれ、さっさと消えろ。どっかで氏んでしまえ!

443:Name_Not_Found
05/09/06 02:42:24
URLリンク(www2u.biglobe.ne.jp)

444:328=296=300=304=306=310=322
05/09/06 04:03:28 NbWOaYmJ
PC崩壊してレス遅くなりましたが、
今回こちらの方々に色々教えていただき、とても助かりました。
アドバイスいただいたみなさま、
どうもありがとうございました。m○m


445:423
05/09/06 08:47:38
ごめんチェックが足りなかったようだ。

>>434
15.1 Global オブジェクト (The Global Object)
URLリンク(www2u.biglobe.ne.jp)

これか。知らなかったよ。

446:Name_Not_Found
05/09/06 09:15:41
便乗質問させてください。

0123 -> 0124 -> 0125 と「0」を含んだままでこのままインクリメントさせ
るにはどう書けばよいのでしょうか。
一旦「0」を除いてn++させたあとで、その数字の桁に応じて「0」をつける
やり方が思い浮かびますが、1行で書けるような方法はありますか?

447:Name_Not_Found
05/09/06 09:45:43
複数行なら脳内スクリプティング済みだけど、1行で書かなきゃいけない理由があるの?

448:Name_Not_Found
05/09/06 10:26:58
>>441
そうじゃないだろ。ECMAにないのに複数のブラウザが8進定数を
(過去との互換性のために)未だにサポートしているところに
ややこしさがある。つまり「処理系に聴け」状態なわけだ。
>>446-447
String(10001 + parseInt(x,10)).substring(1)
だいたいがこんなの過去スレ見れば全部定石として載ってるぞ。
質問者反省しろ。

449:Name_Not_Found
05/09/06 10:30:35
>>447
すいません、言葉が不適当でした。「簡潔で短い」という意味です。
お教えください。

450:Name_Not_Found
05/09/06 10:46:50
>>448
脱帽。鬆ー派ー。すごいです。

>>447
簡潔なものなら、自分のと比較で勉強のため見てみたいです。ぜひお示しください。

451:Name_Not_Found
05/09/06 11:00:46
>>448,>>450.1
この式では、デクリメントに応用できない。その欠点がなければ、だな。40点。
「一般性を排除する理論は宗教の域を出ていない」(アルバート・アインシュタイン)

452:Name_Not_Found
05/09/06 11:13:47
>>451
その欠点だけで60点の減点かよ

453:Name_Not_Found
05/09/06 11:39:01
>>451
で、100点の答えは?

454:Name_Not_Found
05/09/06 12:12:04
高学歴の俺には448がデクリメントにも応用できる気がしてならない。

455:Name_Not_Found
05/09/06 12:24:53
オレは高校中退後専門卒だが、>>448は100点与えていい。>>451は自分の無能
をさらけ出しただけ。何がアインシュタインだよ。
「むだ口をたたく愚か者は踏みつけられる」と聖書にはある。

456:Name_Not_Found
05/09/06 12:36:33
「口は災いの門」と俺のばあちゃん。

457:Name_Not_Found
05/09/06 12:42:11
そこのキミたち。ケンカはやめないか。別にどうでもいいことだ。

458:Name_Not_Found
05/09/06 13:19:41
>>454-455
確かにデクリメント自体はチョト書き直すだけでイイ
しかしデクリメントし続ければ符号付整数になる
対応させるなら条件式もいる罠

「沈黙は金、雄弁は銀」と自爆してみる

459:451
05/09/06 14:02:51
>>458
おお、久しぶりに語り合える真のプログラマを見つけた感じだ。
「真理を多数決できめようとする民衆がいる所に未来はない」(バックミンスター・フラー)

460:Name_Not_Found
05/09/06 15:04:46
だから、100点の答えをはやく出せよ

461:Name_Not_Found
05/09/06 15:21:10
functionでライブラリ作って、必要なとき1行で呼び出すというのが
JavaScriptらしい気がする

function ZeroHeadedString( str, n ){

}

462:Name_Not_Found
05/09/06 15:37:37
strが"0123"とかの文字列で
nが増加量

function ZeroHeadedString(str, n){
var num = Number(str)+n;
var head = new String();
if(num<1000){
head += "0";
if(num<100){
head += "0";
if(num<10){
head += "0";
}
}
}
return head+num
}


463:Name_Not_Found
05/09/06 17:35:03
確か1行で、だったよね

464:Name_Not_Found
05/09/06 17:45:53
こーゆーのを利用するのではいかんの?
試してないけど。
URLリンク(www.onicos.com)

465:Name_Not_Found
05/09/06 19:24:05
>>463
だからぁ、「必要なとき1行で呼び出す」って言ってるじゃあねえかよ、ゴルゥ⌒ア。


466:Name_Not_Found
05/09/06 19:33:07
>>462
簡単に考えて。。

String(10000 + Number(str) + n).substring(1)

もしくは、
('000' + (Number(str) + n)).slice(-4)

467:Name_Not_Found
05/09/06 19:45:25
>>458
そんなこと言ったら
インクリメントし続けても補数になってしまうじゃんか

>>459
見苦しい

468:467
05/09/06 19:48:57
ああ
4桁だからならないわ

469:455
05/09/06 20:07:40
高校中退後専門卒です。いろいろ考えた結果、
>>448は100点与えていい」は取り消します。はやり65点くらいですかね。
アインシュタインはやっぱいいこといいますね。


470:Name_Not_Found
05/09/06 21:33:16
あのさあ、プログラムなんだから「仕様」つまりどの範囲で
使うかまず決めてそれからコード書かないと。結果の範囲が
0~9999だったら>>448でいいしそうじゃないならよくない、
それだけだろ。>>448でいいのに不要な場合までサポートする
ようにぐだぐだ書くのがいいとはちっとも思わない。ライブ
ラリ関数じゃなくて「1行で処理を書く」場合だしね。

471:Name_Not_Found
05/09/06 21:38:37 Y9+w0syr
質問いいでしょうか。

関数の名前を取得するにはどうすればよいですか。書き方がわかりません。
【例】
function CatchMe(){.............}
のCatchMeを取得したいです。

472:Name_Not_Found
05/09/06 22:16:28
>>471
できません。たとえば「var x = CatchMe;」とすると「x()」
という関数はCatchMeと同じものになりますが、この場合「名前」
とは「x」ですか「CatchMe」ですか。実はこの問題過去スレ読めば
ガイシュツだと分かるんだよな。

473:Name_Not_Found
05/09/06 22:17:59
>>471
どうして関数の名前を取得しなきゃいけないようなスクリプト組もうと思ったの?
だって関数使うときってCatchMe();て書いて呼び出すでしょ
その時点で実行する関数が特定されてしまっているわけだ
不可能です

474:Name_Not_Found
05/09/06 22:25:06
JavaScriptをやめてJavaのクラスローディングを使う

475:Name_Not_Found
05/09/06 22:33:41
>>474
洩れはJava使いでもあるがJavaで実行中のコードが自分が
どのメソッドに含まれているか知る方法なんてあったか?

476:471
05/09/06 22:50:08
ご回答ありがとうございます。

取得は不可能ということのようですが、これができればいいと思ったのは、
グローバルなステートメントから関数を自動的に選択して動作をさせるこ
とができると考えたからです。
つまり、ステートメントに変数nを組み入れておいて、例えばですが、
nが負、ゼロ、正によって関数A(),B(),C()を自動的に選別し実行させる。
その際、関数名が取得できれば、自動化できるのではないかと。


477:Name_Not_Found
05/09/07 00:20:06
>>476
ぜんぜんわからん。関数Aを呼んだときにその中から自分の
名前が"A"だとわかったとして、次にどうするって?

478:Name_Not_Found
05/09/07 00:38:51
>>476
理解に苦しみます。やろうとしている事が具体的に分からず。

実行中の関数名の取得?
呼び出す時に、func = 'A'; A(); として変数に入れればすむ事ではないでしょうか(funcをグローバル変数として)。
処理の分岐も単なる変数による処理の分岐ですから

window[str]() で実行できますし。

strの処理で何でも出来ると思うのですが。
例えば、str = 'ABCDEFG'.charAt(n); // 変数 n が数値の場合であるとすると、
if(window[str]) window[str](); // 関数があったら実行。

479:Name_Not_Found
05/09/07 01:16:43 8fgN0CQf
質問です。
typeofという判定子がありますよね。
通常は、if(typeof obj!='object')のように書きますが、
これを、if(typeof(obj)!='object')のように書くのも、正
しい書き方なのでしょうか。

480:Name_Not_Found
05/09/07 01:47:47
>>479
勿論、正しいです。というより、その場合は意味が無いかも。

if(typeof (n? o1 : o2) != 'object')

このような時は括弧が必須でしょ?

481:Name_Not_Found
05/09/07 06:29:39
>>448
> ECMAにないのに複数のブラウザが8進定数を
> (過去との互換性のために)未だにサポートしているところに
> ややこしさがある。つまり「処理系に聴け」状態なわけだ。

//仕様書読んだことのある人が8進定数と言うだろうか。

まず、ややこしくない(笑)。

そして、責任はヴェンダに無い。
特にブラウザ上で使われるJSに関しては、古い仕様
(262-2仕様、及び、262-2より前の仕様) に則したコードも
処理しなければならないから、当然、サポートされる。
その当然のサポートに際して必要な仕様が、>>443 の Annex B だ。
結局、責任はスクリプト作者にあるということ。つまり、極端に言えば、
1999年末に出た262-3以降に書くスクリプトに関しては、
076, "\076",
escape(), unescape(),
String#substr(),
Date#(get|set)Year(), Date#toGMTString()
を使わないように気をつけなさいよということ。
//気をつけるためには、意図せず 8進リテラルが紛れ込んだ時に
//慌てないように、Annex B を理解しておかなければならない。
//全く理解していない元の質問者が最初にするべきことは、
//10進8進変換を頭の中(手計算)で出来るようになることだろう。

482:Name_Not_Found
05/09/07 06:32:41 RYAMzleq
ホームページ制作中で質問です。
コンテンツが50で今後増え続けるので、更新の為にもフレームチックな格好をとりたいのですが
URLリンク(www.hakusi.com)
こんな感じで呼び出すにはどういう風なタグにすれば良いでしょうか。

phpにすれば良いと言われたのですが、そんな高等な技術を持ち合わせていないのでお願いします。

483:Name_Not_Found
05/09/07 06:38:03
>>482
ヒント:スレ違い

484:Name_Not_Found
05/09/07 06:54:28
>>482
そんくらいなら難しいこと特にしなくてもかけるけど。
スレ違いだけど図を頑張って書いたみたいだから答えてみる。

<?php
echo <<<EOF

<h1>あいうえお</h1>
<div class="">かきくけこ</div>
//といった具合に普通にここのエリアに要素(タグ)を書いていく

EOF;
?>

で、これを好きなファイル名、拡張子で保存(header.incとする)
とりあえずここの部分はおまいさんがいう呼び出しページ1の部分とする。

で、あとはhtml内の呼び出しページ1の部分に、
<?php include_once("header.inc"); ?>

これ書いておしまい。
以後更新するときは、header.incのほうをいじる。

phpのコードが入ってるページは、必ず拡張子をphpで保存すること。
htmlだとphpの部分が動作しないから。当然サーバ側もphpが使えないとだめ。

485:Name_Not_Found
05/09/07 07:06:14
追記しとくと、ローカルでPHPの動作を確かめるには、
PHPとApacheなどのWebサーバソフトがないと確認できない。
だからJSに比べたらかなり面倒だね。
まぁサーバにアップして確認すればいいけど、
怪しいコードだらけだと、サーバが暴走する危険性あるから、
ローカルでデバッグしたほうがいいんだけどね。
ってスレ違いスマソ。

486:Name_Not_Found
05/09/07 08:14:18 RYAMzleq
JavaScriptでwebページのソース全体をオブジェクト化することは
可能なのでしょうか?

487:Name_Not_Found
05/09/07 08:19:23
>>486
自分が理解していない単語を人前で使うもんじゃないよ、ホント

488:Name_Not_Found
05/09/07 08:26:44
>>486
new String('ここにwebページのソース全体')

489:Name_Not_Found
05/09/07 09:01:24
>>487-488
質問者の質問には正しく答えろ。人生論や説教は無用。

>>486
可能。

490:Name_Not_Found
05/09/07 09:07:22 RYAMzleq
初心者なもんですみません
>>488
ありがとうございます。
しかし、それとは意味がちがいます
外部からwebページのソースをオブジェクト
として使いたいのです。
つまり、たとえば、IEのツールバーやコンテキストメニュー
からwebページのソース全体にアクセスできないかと
いうことです。

491:Name_Not_Found
05/09/07 09:07:42
>>489
言葉遊びは他所でやってくれ。
質問者の意図を汲み取れなければ答える意味なんざ無い。

492:Name_Not_Found
05/09/07 09:09:50 RYAMzleq
>>489
どうすれば?

493:Name_Not_Found
05/09/07 09:15:26
>>489 は「オブジェクト化」できるっていうんだから説明キボン。

494:Name_Not_Found
05/09/07 09:17:09 RYAMzleq
もっと詳しく言うと、
URLリンク(as.acbomb.com)
のサイトのソフトではJavaScriptでwebページの
URLにアクセスしているようですが、
ソース全体にもアクセスできないかということです

PHPではfile_get_contentsでwebページのソース全体を変数として扱えますが、
こういう感じです。

495:Name_Not_Found
05/09/07 09:18:04 UB63GIO4
NNN :Name_Not_Found:2005/09/07(水) 09:18:46 ID:XXXXXXX
で、上のようにIDがぜんぶ「X」だけで並ぶことは可能でしょうか?

496:479
05/09/07 10:40:35
>>480さん
ありがとうございました。

497:Name_Not_Found
05/09/07 11:10:30 TU9pOnok
IE6(Win) で、要素の パディングとかボーダー幅をピクセル単位で取得するのはどうするんでしょうか?
gecko 系とか opera なら computedStyle を取得したらピクセル単位になってるから良いけど、
IE の currentStyle だと、 em とか auto とか % とかそのまんまだし……

498:Name_Not_Found
05/09/07 11:43:02 AInHUhi0
Cookieで配列の情報を表示することはできますか?

499:499
05/09/07 11:48:02 L+WoQIuc
質問です。
JavaScriptを使用したページで半角カタカナを全角カタカナに一発で
変えるには何か方法がありますか。痴漢はやってられません。

500:482
05/09/07 12:01:56
>phpにすれば良いと言われたのですが、そんな高等な技術を持ち合わせていないのでお願いします。
phpを扱う技術が無いのでJavaで出来ないかお聞きしたかったんです。
言葉足らずですいませんでした。

>>484
ご親切にありがとうございます。
一応試してみましたがイマイチわかりませんでしたorz



501:Name_Not_Found
05/09/07 12:14:00
>>499
濁点や半濁点を処理しなくていいのなら大したことはないと
思うけど。

502:Name_Not_Found
05/09/07 12:21:58
どっかにJavaScriptユーザー会みたいなものはありますか?

503:Name_Not_Found
05/09/07 13:07:29
>>498
クッキーは「表示」するためのものじゃないでしょ。
何にせよクッキーに格納するためには配列を自前で
文字列に変換したり戻したりしないとね。

504:Name_Not_Found
05/09/07 13:10:27
>>494
bodyの内側だけでよければ document.body.innerHTML を参照
すればいいんじゃないの?

505:499
05/09/07 13:18:05
>>501
なら、はやく教えろや。


506:Name_Not_Found
05/09/07 13:29:39
>>502
わたしがその会長だが、何か?

507:Name_Not_Found
05/09/07 13:32:18 RYAMzleq
>>504
欲をいえばソース全体がいいのですが
bodyの内側だけでも十分です。
ありがとうございました。




508:Name_Not_Found
05/09/07 15:40:39
>>505
偉そうだな。説明はしないぞ。ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var s0 = "アイウエオ", s1 = "アイウエオ", map = new Object();
function chg() {
for(var i = 0; i < s0.length; ++i) map[s0.charAt(i)] = s1.charAt(i);
document.body.innerHTML = document.body.innerHTML.replace(
new RegExp('[' + s0 + ']', 'g'), function(c) { return map[c]; });
}
</script>
</head><body onload="chg()">
<p>abcdアオイウエオアオefgh</p>
</body></html>

509:Name_Not_Found
05/09/07 15:42:21
<input type="text" name="data[0]">
<input type="text" name="data[1]">
<input type="text" name="data[2]">
<input type="text" name="data[3]">
 :

フォームを上の様にとした時、dataが何個あるかはどのように取得すればよいのでしょう?
PHP側でNULLも受け取りたいので、name="data[]"とする事はできないです。

510:Name_Not_Found
05/09/07 16:09:13
>>509
var count = 0;
var tmp = foo.var.getElementsByTagName("input");
for(var i=0 ; i<tmp.length ; i++){
if(tmp[i].nameが“data[数字]”の形になっているかどうか){
count++;
}
}

判別は文字列扱いで、正規表現とかでよくね?だめ?

511:Name_Not_Found
05/09/07 16:20:04
>>509
何個あるかはPHP側で決めるんだよな。したらその個数を適当な
input type="hidden"のvalueに入れてJS側でそれを読み出せば?

512:499
05/09/07 17:09:22
>>508
あ、<!DOCTYPE さんとは知らず、たいへん失礼を申し上げてしまいました。
なにとぞご容赦のほどを。
全角になりませんが、これを元に勉強してみます。ありがとうございました。

513:Name_Not_Found
05/09/07 17:21:58
>>512
ん? Unix Moz1.7.11とWin IE6で確認したんだけどな。文字コードのせいで
日本語が正しく認識されてないとか?洩れはSJISで格納して試したけどね。

514:Name_Not_Found
05/09/07 17:49:20
>>506
ワロt

515:しお
05/09/07 18:07:39
質問です。
セレクトボックスで要素が例えば10個あっても
プルダウンメニューで見えるのを5個とかにすることはできますか?
よろしくお願いします。

516:Name_Not_Found
05/09/07 18:20:37
なあ、e.keyCode ってやると押されたキーコードの値が返るけど、
その逆、例えば hoge('M') ってやると そのMキーの持つキーコードの値が返る関数ってなかったっけ?

517:Name_Not_Found
05/09/07 18:28:10
>>515
できません。プルダウンでなくなってもよいのなら
<select size="5" ....>を使う。この場合JSと関係ないけど。
>>516
ないと思うな。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch