+ JavaScript の質問用スレッド vol.43 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQ】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… Q3. document.write(...)でページ内容を追加したいのですが… A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。 Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。 Q5. Aタグのonclickで動作指定してるのですが時々動きません… A5. 「onclick="...;return false"」としないとページ移動しちゃうから。 Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A7. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。 Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。 Q9. 100*1.15の結果が114.999…998となってしまうのですが… A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q10. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A10. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP") を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
6 :
「まず>>2-3読んでこのレスの過去スレ全集へ飛べ」 :2005/11/02(水) 09:58:53 ID:nP/V418n
少し提言が送れた。次スレでこういう方法も考えてね。 どりあえず名前だけ挟んどくから。
9 :
「まず>>2-3読んでこのレスの過去スレ全集へ飛べ」 :2005/11/02(水) 10:03:46 ID:nP/V418n
まあ乙だ
ローカルルール変更届は出しといたから
あと初心者くれぐれも
「まず
>>2-3 読んでこのレスの過去スレ全集へ飛べ」
だ。
11 :
Name_Not_Found :2005/11/03(木) 00:21:36 ID:z+nhBMOI
質問です。 画像Aがあったとき、このAの画像を、たとえば15度だけ右に傾ける ことが、JavaScriptでできるときいたんですが、どう書けばよいのか 教えて頂けませんか。その際、回転させた背景を透過のままでできる でしょうか。よろしく、です。
FireFox の getComputedStyle に相当する、IEのメソッド教えておくれ。 あるDomElement に実際に適用されている css のパラメータが欲しい。
>>11 よく読まずにヒント。
onmousedownからonmouseupまでの間がドラッグ。
>>15 メソッドじゃないけどcurrentStyle
擬似クラスは無理
いま IE の判別を document.all && !window.opera ってしてるんだけど、他にも 「このwindow(document)メソッド(プロパティ)は後にも先にも昔からのIEにしかないぞ!」 ってのありますかねえ?
20 :
19 :2005/11/03(木) 08:10:05 ID:???
聞くだけではなんなので、いま自分なりに IE4-6, FireFox, Opera8 で試してみたんだけど、 // IE独自 windowプロパティ clientInformation external offscreenBuffering onbeforeunload on〜 (イベント) // IE独自 documentプロパティ defaultCharset fileCreatedDate fileModifiedDate fileSize fileUpdatedDate mimeType nameProp on〜 (イベント) protocol security もし Safari とか MacIE とか持ってる人いたら var attr = []; for (var k in window) attr[ attr.length ] = k; document.write('<pre>'+ attr.sort().join('\n') +'</pre>\n\n'); とかやってみてくれると助かるわ。
23 :
Name_Not_Found :2005/11/03(木) 09:42:53 ID:FyCVta8p
質問です。 自分の名前を、色を000000から999999まで変えながら、10回表示せよ。 (for文を使え。) これの解き方がわかりません。教えてです。
>>23 学校の課題だったら自分でやらんと身につかないよ。
とりあえずfor文が分かるのか分からないのかどっちよ。
(厨房な回答者さんへ。こんなの誰でも分かるんで自分が分かる
からといって偉そうに回答するのはやめてよね。)
25 :
23 :2005/11/03(木) 09:59:54 ID:???
じゃあ、きょう一日かけて、頑張ってやってみます。 わからないとこ教えてください。安易なおねだりすいませんでした。
いやまあ、だから、for文が分かるかどうかまず聞いてるんだが。
>>23 for 文を使わなければ簡単なんだが……。
var i = 0;
new Array(1 + 10).join('aiueo'.fontcolor('\t;') + '\n')
.replace(/font color="\t/g, function () {return 'p style="color:#' + new Array(1 + 6).join(i++)})
.replace(/font>/ig, 'p>')
>>23 >>28 間違えた。
var i = 0;
new Array(1 + 10).join('aiueo'.fontcolor('\t;') + '\n')
.replace(/font color="?\t/ig, function () {return 'p style="color:#' + new Array(1 + 6).join(i++)})
.replace(/font>/ig, 'p>')
>>23 >>29 また間違えた。
var i = 0;
new Array(1 + 10).join('aiueo'.fontcolor('\t;') + '\n')
.replace(/font color=("?)\t/ig, function (_, _1) {return 'p style=' + _1 + 'color:#' + new Array(1 + 6).join(i++)})
.replace(/font>/ig, 'p>')
>>23 Firefox1.5 からは Array.map (Array.prototype.map.call へのショートカット) が使える。
'<p style="color:#'
+ Array.map(new Array(1 + 10).join('\t'),
function () {
return new Array(1 + 6).join(arguments[1])
})
.join(';">aiueo<\/p>\n<p style="color:#')
+ ';">aiueo<\/p>'
32 :
19 :2005/11/03(木) 11:39:57 ID:???
>>21 一応 vol20 あたりから読んではいるよ。
でもいまだなんか決定的というか定石というか、そんなのが示されてない気がしてのう。
>>27 ワロタw
MSの仕様はすごいなあ。
話は変わるけど、以前、
element.setAttribute('name', 'value'); と
element['name'] = 'value';
の違いとか、簡潔性とか話題になってたと思うけど、
今日 <label for="〜"> を DOM でやろうとして、
element['for'] = 'hoge-id';
というようにやってたんだけど、IE, FF, Opera でどうも機能しない。
innerHTML でソース表示させたら、for属性に値が入っていない模様。
いろいろやってみたら、FFやOperaでは
element.setAttribute('for', 'hoge-id');
とやればうまく機能し、
IE では
document.createElement('<LABEL for="hoge-id">');
とやらなければ機能しないらしい。
まあマメ知識程度の話で。
>>23 >>31 余計な事をしていた。
'<p style="color:#'
+ new Array(10).map(function () {return new Array(1 + 6).join(arguments[1])})
.join(';">aiueo<\/p>\n<p style="color:#')
+ ';">aiueo<\/p>'
>>28-31 おまいらそんなにfor文キライか?w
>>23 のような初心者がそんなコード理解できるとはとても思えないのだけどいぢめなのか。
>>32 element.htmlFor = "idref"; ね。
"for"だと多くの言語でキーワードとして用いられてるから名前が変えられてるのよ。
>>35 マジデ? 勉強になるわー。 className みたいなもんか。
他にもそういうのってなんかあるのん?
39 :
11 :2005/11/03(木) 12:22:33 ID:???
>>36 Gecko1.8b4 で ECMA357-1 の確認。(この仕様は色々と改訂される予定だろうが。)
js> var x = new XML('<x><int/><float/><for/><\/x>')
js> typeof x.int // JavaScript では int は予約語ではないが、一応。
xml
js> typeof x.float
xml
js> typeof x.for
SyntaxError: syntax error:
js> typeof x["for"]
xml
>>37 おー、早速ありがとう。
ECMA のとこ見てみたけど、他によく使う属性では すげえ変わってる、ってのはないね。
とりあえずリファレンス読めて一安心だわ。
>>38 つまり css の float のことよなー?
こんな名前変換、言われなきゃ気づかねーw
>>40 あー、そうだな、わかる気がする。
なんか element.for = 'hoge'; ってやったらエラったもの。
for のほかにも if とか while, continue, break, var とか予約語は須らく持てないみたいね。
>>40 float も JavaScript では予約語じゃなかった。意味無し。
>>32 禿しくガイシュツだが、俺が見ただけで3回は出てるぞ。
>一応 vol20 あたりから読んではいるよ。
も眉唾だな。それともネタフリ?
>>34 ここは質問スレで、初心者専用ではない。
初心者の取るに足らん質問を有用にしようとする回答者の努力だと思うが。
別に質問者の力量で理解できなくても文句はいえんだろう。
45 :
Name_Not_Found :2005/11/04(金) 13:34:06 ID:sfrBcp4B
ムリ
_
2バイト文字を表す正規表現はどうやるの?
[\x0100-\xffff]
そんなの、ググってから人に聞けよ。おれがいまググったら、 2バイト文字+正規表現 の検索結果のうち 日本語のページ 約 23,700 件 と出たぞ。2万件ありゃじゅうぶんだろ。
>>51 それは違うだろ。2万件もあったからとても見てられない
という意味で質問してるのかも知れない。
>>50 それだといわゆる半角カナが入るけどそれでいいのかどうか。
>>49 JavaScirptの中では文字はUnicodeのUTF-16なんで、全ての
文字は2バイトです。それで不満なら「2バイト文字」じゃなく
もっと正確にどういう文字を識別したいのか書け。とくに
半角カナあたりも含めてね。
なんでWebProg板いかないかなー。
入力された文字列の半角文字と全角文字のそれぞれの 文字数を数えることってできますか?
>>46-48 アホか、おまえ(ら)。
こんなアホが出るから、Ajax なんて buzzword は駄目なんだ。
昔からあるウェブオートメションという言葉や、単に、簡易 HTTP クライアントで良い。
>>45 >>3 FAQ-10
Referer の綴りに注意して、
(IXMLHttpRequest|XMLHttpRequest)#setRequestHeader('Referer')
setRequestHeader って XMLHttpRequest のリクエスト時のheaderだと思ってた orz
>>45 一応、Firefox で確認してみたが、何とでも自己申告できる。
<a href="/test" onclick="a_onclick(event)">refer(r)er test</a>
function a_onclick(e) {
e.preventDefault();
var r = new XMLHttpRequest();
r.open('GET', e.currentTarget.href, false);
r.setRequestHeader('Referer', 'abcdefg');
r.send(null);
alert(r.responseText); // abcdefg
}
61 :
Name_Not_Found :2005/11/04(金) 21:00:03 ID:7LnB/0d5
>>58 本当はreferrerだけど、referer、な。
javascriptぐらいだっけ、綴りがあってるのは。
rが1つ抜けた理由は失念
63 :
Name_Not_Found :2005/11/04(金) 21:24:35 ID:o2vm8Srl
重複しない10個の乱数を取得するプログラムがどうしても書けません。 for文は1回のみという条件付です。 どなたかご教授お願いします。
>>63 作るんじゃなくてシャッフルしたらいいんだろ
これもFAQだな
>>63 乱数だったら普通に10個出して来て同じものが2つあることは
まずないけど。なんなら既に出てるかどうか表に登録しつつ
forループを回るとか。
…しかしアンタの日本語が間違っているのでは?「1〜10の
数をランダム順に1回ずつ出して来る」とかじゃないの?
もしそうなら
>>64-65 の言う通りなんだけどね。(ということは
その場合は回答されないってことだ、自分で過去スレ探すようにね。)
複数の配列があって、var1[0]とvar2[0]とvar3[0]、var1[1]とvar2[1]とvar3[1]・・・・ のようにそれぞれの配列が関連のある値の場合、 var1.sort()としたときに他の配列もvar1と同じ順番で並び替えるにはどうしたらいいですか? とりあえず思いついたのは ソートしたい配列を先頭にして区切り文字を挿入して連結、 ソート後に分割、各配列に格納し直すという手順です。 <html><body><script> var1 = new Array('b','d','c','a'); var2 = new Array('100','200','300','400'); var3 = new Array('た','あ','か','さ'); alert('var1=' + var1.toString()+'\nvar2='+ var2.toString() + '\nvar3=' + var3.toString()); sortArray=new Array(); for(i=0; i<var1.length; i++){ sortArray[i] = var1[i] + '@' + var2[i] + '@' + var3[i]; } sortArray.sort(); tempArray = new Array(); for(i=0; i<var1.length; i++){ tempArray = sortArray[i].split('@'); var1[i]=tempArray[0]; var2[i]=tempArray[1]; var3[i]=tempArray[2]; } alert('var1=' + var1.toString()+'\nvar2='+ var2.toString() + '\nvar3=' + var3.toString()); </script></body></html> もっとスマートな方法はありませんか?
>>67 似たり寄ったりなのだけど、とりあえず
var vars = [];
vars[0] = new Array('b','d','c','a');
vars[1] = new Array('100','200','300','400');
vars[2] = new Array('た','あ','か','さ');
しておいて、
// 1
var test = vars[0].concat();
for (var k = 0; k < vars.length; k++) {
var tmp = [];
for (var i = 0; i < vars[k].length; i++) tmp[i] = [ test[i], vars[k][i] ];
tmp.sort();
for (var i = 0; i < vars[k].length; i++) vars[k][i] = tmp[i][1];
}
alert(vars)
// 2
var tmp = [];
for (var i = 0; i < vars[0].length; i++) {
tmp[i] = [];
for (var k = 0; k < vars.length; k++) tmp[i][k] = vars[k][i];
}
tmp = tmp.sort();
for (var i = 0; i < tmp.length; i++) {
for (var k = 0; k < tmp[i].length; k++) vars[k][i] = tmp[i][k];
}
alert(vars)
もっと少なくかけたりするけど、まあいいや
RubyだとArray#transposeという便利メソッドがあるみたいだね。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=Array#transpose まあやってることは
>>68 と同じなんだけど。
このままだと実行速度も遅いし。
if (!Array.prototype.map) {
Array.prototype.map = function(callback, thisObject) {
var ret = new Array(this.length);
for (var i = 0; i < ret.length; i++) {
ret[i] = callback.call(thisObject, this[i], i, this);
}
return ret;
}
}
Array.prototype.transpose = function() {
return this[0].map(function(dummy, i) {
return this.map(function(element) {return element[i];});
}, this);
}
var var1 = new Array('b','d','c','a');
var var2 = new Array('100','200','300','400');
var var3 = new Array('た','あ','か','さ');
var sortedArrays = [var1, var2, var3].transpose().sort(function(a, b) {return (a[0] > b[0]) ? 1 : -1;}).transpose();
alert(sortedArrays.join("\n"));
そもそも配列3つというデータ構造がよくないのでは。 配列しかない時代のFORTRANみたいだ。ふつう、3つの 値を組にしたレコード(JSならオブジェクト)を配列に 格納するだろ。区切りを挿入して連結なんて…
>>67 ,71
データをテーブルとして
| b | d | c | a |
| 100 | 200 | 300 | 400 |
| た | あ | か | さ |
列を移動させたときにどう処理するか、って話なんだろうね。
まあ普通は1列1列が何らか共通の部分があるなら、列に名前をつけて (オブジェクトにして) やるよな。
shift()、pop()は配列の最初、最後を取り出しますが 配列の真ん中を抜き出すメソッドはありませんか? 1,2,3,4,5,6,7 の3つ目を抜き出す→ 1,2,4,5,67
<script language="JavaScript" type="text/javascript" src="★"></script> (★はURL) のようにlanguage属性とtype属性を同じタグで指定できますでしょうか。 FC2のアクセス解析のソースなのですが・・ 宜しくお願い致します。
76 :
Name_Not_Found :2005/11/05(土) 16:56:52 ID:DomGOzmU
javascriptである文字列を含まない正規表現がググっても出てこないんだけど、どうやるんですか?
78 :
76 :2005/11/05(土) 19:02:09 ID:???
> それ正規表現て言わない はあ?なにそれ。 質問の意味分かってる?
79 :
73 :2005/11/05(土) 19:05:49 ID:???
>>74 ありがとうございます!
手持ちのリファレンスには配列の置換としか書いてなかったので
こういう使い方ができるとは知りませんでした。
81 :
70 :2005/11/05(土) 21:08:28 ID:???
>>74 ごめん、そこ手抜き。重複した要素はないという条件を勝手に付け足してた。
Operaで「z」やら「x」やら「-」やら「+」を入力したときに「戻る」「進む」「縮小」「拡大」等の動作が起きるのですが, これをJavascriptで無効にすることはできないでしょうか。
>>83 試してないけどキーイベントを捕捉してprevendDefaultしてみたら。
意味が分からなければ勉強してね。
85 :
76 :2005/11/05(土) 23:47:25 ID:???
>>80 そういうのさんざん見たけどわかりませんでした。
>>82 すごく複雑だなあ。こんなの書かなきゃならんの?
しかも適用したら重過ぎだしエラーで使えないじゃないか。
>>85 これが複雑ですかw
エラーはあなたの責任ですww
馬鹿かこいつ 正規表現の本でも買って読んどけ
88 :
67 :2005/11/06(日) 00:42:59 ID:???
>>68 ,70,71,72 レスありがとうございます。
>>68 1つ目の方採用させていただきました。環境に合わせて少し改造しましたが。
いずれ数千の配列でやるつもりですが速度的にどうなんでしょう?
<html><body><script>
names = new Array('alphabet','number','kana');
alphabet = new Array('b','d','c','a');
number = new Array(300,400,100,200);
kana = new Array('た','あ','か','さ');
function sorter(target){
head = window[target].concat();
for(k=0; k<names.length; k++){
tmp=[];
for(i=0;i<window[names[k]].length;i++) tmp[i] = [head[i],window[names[k]][i]];
tmp.sort();
for (i=0; i<window[names[k]].length;i++) window[names[k]][i] = tmp[i][1];
}
alert(alphabet + '\n' + number + '\n' + kana)
}
</script>
<input type="button" value="alphabet" onclick="sorter(this.value)">
<input type="button" value="number" onclick="sorter(this.value)">
<input type="button" value="kana" onclick="sorter(this.value)">
</body></html>
>>71 3つの値を組にした場合個々の値の書き換え時に面倒になるということはないですか?
うまい方法があるならそれも知りたいです。
>>72 >列に名前をつけて (オブジェクトにして) やるよな。
具体例ってどんな感じになりますか?いまいちわからないので。
>>71 ,72 ですね。 普通に書けばSORTするだけですよね
function struct(alpha, number, kana)
{
this.alpha = alpha;
this.number = number;
this.kana = kana;
this.toString = function(){return this.alpha+'\t'+this.number+'\t'+this.kana}
}
function struct_alpha_ascending(a,b){return a.alpha==b.alpha?0:a.alpha>b.alpha?1:-1}
function struct_alpha_descending(a,b){return a.alpha==b.alpha?0:a.alpha>b.alpha?-1:1}
function struct_number_ascending(a,b){return a.number==b.number?0:a.number>b.number?1:-1}
function struct_number_descending(a,b){return a.number==b.number?0:a.number>b.number?-1:1}
var vars = new Array();
vars.push(new struct('b','100','た'));
vars.push(new struct('d','200','あ'));
vars.push(new struct('c','300','か'));
vars.push(new struct('a','400','さ'));
vars = vars.sort(struct_alpha_ascending);
//vars = vars.sort(struct_number_ascending);
{ //このブロックは確認のため
var s='';for(var i=0;i<vars.length;i++){s+=vars[i]+'\n'}alert(s)
}
90 :
89 :2005/11/06(日) 00:50:54 ID:???
どういった局面でこのような処理を必要とするのか
>>67 に正座させて問い質したい(うそ)
>もっとスマートな方法はありませんか?
って、魔法の呪文みたいに人を惹きつけるフレーズですね。流し読みできませんでした
こんど使わせてもらおっと ...ちなみに、私はデブじゃないよ。
//relation_array_ascending(argument-0[,argument-1[, ... [,argument-n]]])
//argument-0 をKEYとして、すべての配列を昇順に並べ替える
//但し、すべての配列の要素数は同じとみなし例外処理を省略する
function pointer_struct(key, ref)
{
this.key = key;
this.ref = ref;
}
function relation_array_ascending()
{
var pointer = new Array();
for(var i=0;i<arguments[0].length;i++) pointer.push(new pointer_struct(arguments[0][i],i));
pointer = pointer.sort(function(a,b){return a.key==b.key?0:a.key>b.key?1:-1});
for(var i=0;i<arguments.length;i++)
{
var arr = new Array();
for(var j=0;j<pointer.length;j++) arr.push(arguments[i][pointer[j].ref]);
arguments[i].splice(0,arguments[i].length,arr.valueOf());
}
}
var var1 = new Array('b','d','c','a');
var var2 = new Array('100','200','300','400');
var var3 = new Array('た','あ','か','さ');
alert('var1=' + var1.toString()+'\nvar2='+ var2.toString() + '\nvar3=' + var3.toString());
relation_array_ascending(var1, var2, var3);
//relation_array_ascending(var2, var1, var3);
alert('var1=' + var1.toString()+'\nvar2='+ var2.toString() + '\nvar3=' + var3.toString());
91 :
83 :2005/11/06(日) 01:16:34 ID:???
>>84 ありがとうございます。
preventDefaultでぐぐろうと思います。
92 :
67 :2005/11/06(日) 01:55:56 ID:???
>>89 ん!?数分でこれ書いたんですか!?まじっすか。
とりあえずぱっと見何やってるかわからないのでじっくり理解してきますorz
>どういった局面でこのような処理を必要とするのか
webベースのミュージックプレーヤのプレイリスト用です。
アーティスト名・アルバム名・ジャンル・トラック数・アップデート日時・コメント・URL
の項目があって既に200近いリストが登録されています。
各項目でソートできたら目的のリストを探しやすいので。
エクスプローラの詳細表示をイメージして作ってます。
エクスプローラのソートってすごく高速ですけど
javascriptであのスピードは無理ですか?
93 :
76 :2005/11/06(日) 02:07:30 ID:???
>>86 試しに10文字を作成してみた。
^(((((((((((((((((([^a]*)*(a+[^b][^a]*)*)*)*(a+b[^c][^a]*)*)*)*(a+bc[^d][^a]*)*)*)*(a+bcd[^e][^a]*)*)*)*(a+bcde[^f][^a]*)*)*)*(a+bcdef[^g][^a]*)*)*)*(a+bcdefg[^h][^a]*)*)*)*(a+bcdefgh[^i][^a]*)*)*)*(a+bcdefghi[^j][^a]*)*)*$
おまいはいきなりこんなの作れるわけ?ちゅごいね。
>>87 いろんなサイト巡ってみたけど載ってなかったものが、本に載ってるわけ?
どの本に載ってるか教えてください。
>>93 それ絶対に書き方変だぞ
何を書きたいんだ?
95 :
76 :2005/11/06(日) 02:20:21 ID:???
>>94 82のページで、abcdefghijを入力して作ったものだけど。
変なら正しい書き方教えて下さい。
>>76 の要件だと「マッチするの否定」で簡単じゃんか
97 :
76 :2005/11/06(日) 03:33:26 ID:???
76の要件は正規表現の中で使う。分岐は使わない。
とりあえず
>>80 の検索結果を見てけば否定先読みというのが出てくるだろ。
^(?:(?!含まない文字列).)*$
古いブラウザのことも考えるなら
>>96 が一番簡単だと思うけどね。
(実はindexOf() == -1ですむとかいう話ではないよな?)
99 :
67 :2005/11/06(日) 05:30:05 ID:???
試行錯誤の結果これが一番高速な気がします。非破壊的ソートだし。 tmpにソート元識別番号を加えた配列を格納後ソートし、 識別番号だけ取り出し配列に保持(sID)。必要なときにsIDをもとに結果を得る。 自分的にはシンプルにまとまった気がしますがこれってどうなんですか? <html><body><script> names = new Array('alpha','kana','num'); alpha = new Array('c','d','g','h','l','m','e','j','i','a','n','b','k','o','f'); kana = new Array('お','さ','か','う','く','こ','あ','す','き','そ','い','し','け','せ','え'); num = new Array('07','01','06','04','09','02','13','10','15','03','11','08','14','05','12'); function sorter(target){ zero=''; keta=1; for(i=0; i<window[target].length.toString().length-1; i++){zero+='0'; keta++;} tmp=sID=[]; for(i=0; i<window[target].length; i++) tmp[i]=window[target][i] + zero + i; tmp.sort(); for(i=0; i<window[target].length; i++) sID[i]=parseFloat(tmp[i].substr(tmp[i].length-keta,keta)); } function result(){ temp=''; for(i=0; i<names.length; i++){ for(k=0; k<window[names[i]].length; k++){ temp+=window[names[i]][sID[k]] + ','; } } alert(temp) } </script> <input type="button" value="alpha" onclick="sorter(this.value); result();"> <input type="button" value="kana" onclick="sorter(this.value); result();"> <input type="button" value="num" onclick="sorter(this.value); result();"> </body></html>
>>67 だからさ、
「webベースのミュージックプレーヤのプレイリスト用」 なんだろ?
「アーティスト名・アルバム名・ジャンル・トラック数・アップデート日時・コメント・URL 」 なんだろ?
で、
>>67 は 「アーティスト名」 や 「アルバム名」 とかを var1 とか var2 とかの配列にしてるってことだよな?
普通そんなことはしないでオブジェクト化するのよ。
こう、
var data = [
{ artist : アーティスト名1, album : アルバム名1, 以下略1 },
{ artist : アーティスト名2, album : アルバム名2, 以下略2 },
以下略...
];
っていう形でデータ化するでしょ。
そうすると、album とかでソートしたいときは、
data = data.sort( function (a, b) { return (a.album > b.album) ? 1 : (a.album < b.album) ? -1 : 0 } );
って 1行で data のソートは済むわけ。
こういうのをやりたいんじゃないの?
>>92 そういうことならやっぱりそのリストの一つ一つのアイテムをオブジェクトにまとめたほうがいいと思う。
function PlayListItem(artist, album, genre /*, trackNo, updated, comment, url*/) {
this.artist = artist;
this.album = album;
this.genre = genre;
}
PlayListItem.prototype.toString = function() {
return "[" + [this.artist, this.album, this.genre].join(", ") + "]";
}
function sortByKey(array, key) {
array.sort(function(a, b) {return (a[key] > b[key]) ? 1 : (a[key] < b[key]) ? -1 : 0;});
}
var playList = [
new PlayListItem("アーティスト3", "アルバムC", "ジャンルX"),
new PlayListItem("アーティスト1", "アルバムB", "ジャンルZ"),
new PlayListItem("アーティスト2", "アルバムA", "ジャンルX")
];
alert(playList.join("\n"));
sortByKey(playList, "artist");
alert(playList.join("\n"));
102 :
67 :2005/11/06(日) 07:22:49 ID:???
>>100 なるほど。
>>89 ,90 はこれが要なわけですね。
これだけでいけるのはわかったけどこの一行で何が起こっているかいまいち理解できない。。
data = data.sort( function (a, b) { return (a.album > b.album) ? 1 : (a.album < b.album) ? -1 : 0 } );
簡単でいいんで解説してもらえませんか?お願いします。
103 :
101 :2005/11/06(日) 07:43:42 ID:???
104 :
67 :2005/11/06(日) 08:23:02 ID:???
>>103 今までいろいろな機能を少ない知識で強引に実現してきましたが
今日ついに限界を感じました。観念してECMAScript読んできます。
変数宣言はvar付きですね。気をつけます。
そういえばスコープ関係でバグ出て原因がわからず時間食ったことありました。
ちょっとは成長して帰ってきます。では。
106 :
Name_Not_Found :2005/11/06(日) 11:30:15 ID:Jm1BleCK
63ですが box1 = newArray(10); var i; for(i=0;i<10;i++) { box1[i] = Math.floor(Math.random()*10); } ↑ これだと重複してしまいます。 重複させない為にはどうしたらいいでしょうか? 教えてください。お願いします。
>>106 過去スレに何度もでてるし、ぐぐればひっかかるって。
>>64-65 オマイ
>>63 は、過去スレも読まないわ、ググリもしないわ、
自分の質問に対するレスも無視するわ、最悪だなっ
>>110 getElementByIdを使ってる例なら過去スレに山程ある。いまさら何を質問
してるんだ?過去スレ読んで勉強すりゃいいじゃん。全部書けというのなら断るよ。
最近は甘やかせば優しいことにでもなるんかね
ただ唐突にやさしくないと雰囲気が悪くなり
今みたいに閑散する罠
>>63 はどうしようもないが、
>>110 はヒントぐらい与えてもいいと思うが。
回答と誘導と叩きのバランスが大事。
>>110 その形でいいのでは?敢えていえばgetElementsByTagName('form')[0]
過去スレ全集GO!!
>>114 爆笑! アンタのヒントってのは質問者を惑わそうとしてる
ようにしか見えないぞ。つまり誰にも必要とされてないって
ことだな。すっこめ。
┐(・∀・)┌ また始まったか pcとかprog系板って叩くは熱心でスルーできないヤシ多いな
117 :
110 :2005/11/07(月) 00:31:32 ID:???
すみません、勉強させて頂きました。何とか解決できそうです。 ありがとうございました。あと、少し荒らしてしまったようで申し訳ないです。 では。
118 :
89 :2005/11/07(月) 00:33:27 ID:???
>>92 なるほど、
単独のテーブルにする積極的な理由は無かったんですね
「眼から鱗的な発想が、そこにあるにちがいない。」
って、ちょっぴり期待してました。
>webベースのミュージックプレーヤのプレイリスト用です。
自分の趣味の、且つ実用的なものを題材にするのは
モチベーションを保つのにもってこいですよね。
漢字のSORTは一工夫欲しいとこだけど、それはまた別の話かな
>エクスプローラのソートってすごく高速ですけど
>javascriptであのスピードは無理ですか?
おそらく...
>>67 のがんばりがあれば、きっと出来る!(無責任発言)
ちなみに、その高速なエクスプローラで「*.htt」を検索して
内容をtextで見ると楽しいかも(これまた無責任発言)
rapidshareでファイルを落とそうとしたら以前は落とせたのに 「ERROR: Please enable JavaScript」ってのがなぜか出てきました。 だれか解決策をご教授お願いします。
>>119 あんた、英語はさっぱりダメか?
そこに答えが書いてあるだろ。
>>111 過去スレ見ろ、というだけなら、だれでも回答者になれるだろw
そういう答えかたをするなら、どこへ戻ればいいか、ピンポイント
で指摘してやるのが、オトナの対応だろな。
>>122 お前はいったいどれだけ甘やかされた子供なんだ
>>122 アンタが特定レスを検索してやるのは別に止めないね。ご自由に。
ただしnullのレスばっかり検索して来ないでくれよ(w
洩れは「過去スレを読め」と書く場合、過去スレに回答があること
までは確認している。過去スレに回答がないような質問で「過去スレ
を読め」なんて書いたら厨房になっちゃうだろ?
レス番まで書いてやるのはそれなりの質問で気が向いた時だけ。
125 :
122 :2005/11/07(月) 14:10:49 ID:???
あんたがそうするのは、勝手だ。別におれには関係ない。 中には安易にそう答えているらしいのを見掛けるから、 念のために書いたまでだ。 nullスレを検索するなということは、過去スレ見れとい ってるやつもそのスレのことをいってる可能性だってあ るだろ。あんたは、じぶんだけが大した人間だと勘違い してやしないか?
126 :
114 :2005/11/07(月) 14:25:26 ID:???
>>123-124 要は、一蹴するなということ。
すべてが分かっていれば、質問スレにこないって。
何がわかんないのかわかんない香具師だっている。
勘違いで調べて見つからない香具師もいる。
一蹴せず、うまく誘導しろってことだ。
そして気が向いたらコードでも上げてやれ。
ところで
>>115 formにIDを付けられないでしょ。そのコード換える必要あるの?
どうしてもDOM風にしたければ
getElementsByTagName使えばということ。
まあ次の質問どーぞ。
>>126 過去スレにあるっていうのは十分親切な情報だと思うね。
: formにIDを付けられないでしょ
つけられるとも。その大嘘はどっから出てるんだ?DTDが
読めない香具師かよ。(自分が半可通だという認識を持たずに
偉そうにミスリードしまくり、大迷惑だろ。すっこめ。)
>>127 まあ、ちょっと何か知ってるくらいで、鬼の首でも取ったような
ようにいうなよ。あんたの人格を疑われるぜ。
人はそれぞれ、24時間もって、いろいろな経験してるんだ。あ
んたの知らないことを詳しく知ってるヤシもいることを忘れるな。
もっと謙虚になれよ。プログラミングができるからって、できる
人間からみれば、そんな偉そうにするほどのことでもないだろ。
あたり前の筋道でコード書いて、それが動くってだけのことさ。
だから、人の揚げ足とっていい気になるな。
喧嘩は表でお願いします
130 :
128 :2005/11/07(月) 18:58:08 ID:???
131 :
128 :2005/11/07(月) 19:02:51 ID:???
このクソ日本人。何か自分の意見をいうと、すぐケンカだと。 おまえにケンカの仕方をおしえてやれんのが残念だ。 口論とディベートとケンカは全く違うぞ。いいたいことをいうべきだろ。 それをケンカだのなんだのと騒いで仲良しクラブにしてるから、日本は 中国に負けるんだよ。向こうはすごいぞ。一回行って来い。ヴォケ
スレ違いの純情
うわ、韓国人か中国人だったわけだw
一連の書き込みは以下に該当すると思うのですが、間違ってますか? けんか ―くわ 0 【▼喧▼嘩/▼諠▼譁】 (名)スル (1)言いあらそったり腕力を用いてあらそったりすること。言いあらそいやなぐり合い。いさかい。 「―口論」 (2)やかましく言い立てること。騒がしいこと。
\(^o^)/
ふんにゃかふんにゃか
あのねえ、null氏が最初に出て来たころは間違いあっても生暖かく
指摘してたんだけどねえ。いくら言っても勉強はしないわ偉そうに
間違いを教えるわで直らないから。厳しく指摘することにしますた。
null氏であろうと誰であろうと(誰だかなんて分からないしね。)
でも。洩れは単に間違い勘違いを吹聴してて有害だから指摘してる
だけですぜ。言い方は厳しいとしてもね。それを鬼の首だって。
自分が鬼に見えるとはずいぶんと勘違いな方だ。
>>134 指摘された方は逆ギレしてるからそう見えるのかも知れんけど、別に
洩れは厳しく指摘すれば十分なだけでそれ以上相手する気はないんだ。
>>137 もういいだろ、それで。気が済んだか。ボケナス
はっきりいってLispを知らずにJavaScriptを人様に教えている奴は消えていい
森を見て木を見ず
>>139 そうだよね、クロージャとか知らないとしょうもないもの。
141 の頭の中ではクロージャと Lisp が同列らしい
質問します selectタグにsize属性を指定するとなんか形がかわりますよね そこにmultiple属性を指定すると複数の項目を選択できますよね 複数の選択のインデックスを取得するにはどうしたらいいんでしょう <script> function getSelected(){ document.getElementById("txt").value = document.getElementById("sel").selectedIndex; } </script> <input type="button" value="取得" onclick="getSelected()"> <input type="text" id="txt"><br> <select size="5" id="sel" multiple> <option>あ</option> <option>い</option> <option>う</option> <option>え</option> <option>お</option> </select>
質問です。 function obj(){ this.a = 0; this.b = 100; this.timer; } obj.prototype.func = function(){ if(a<b){ a++; this.timer = setTimeout("this.func()",100); } else{ clearTimeout(this.timer); } } var o = new obj(); o.func(); オブジェクトのメソッドの中でevalとかsetTimeoutなどを使って再帰的な 動作をしたいのですが、イマイチ書き方がわかりません。 "this.func()" と書いても、そのリテラルがそのまま評価されるだけで、 thisがわたっている訳ではない、というのはわかるのですが。 どのように書いたら良いでしょうか。
>>145 この言語の仕様にはラムダという言葉は定義されていないし、使われていない。
オレは知らないw つーか、今来たのでオレは147じゃないすw LISPもしらないwかじって聞いた事あるなぁ 人工知能が云々…それだけwww つーか、経済系だしオレ|ω・)
>>147 ラムダは言語処理系の基礎知識ですよ…
俺にはこれと同じように聞こえる
↓
この言語の仕様には条件分岐という言葉は定義されていないし、使われていない
ここはLISPスレに変わったようです。
|ω・)<「餅は餅屋」ってカンジ。専門にはかなわないナー
>>150 誰でも知っているが、使われていない。
その条件(分岐)という言葉は使われている。
つまり、他の言語で語るな、と、いうことだ。 ECMA262-3 を完読したことのない JS 初心者が、それまでの知識経験だけでやろうとした事の代表例。 いかにして Java と似せて書くか、いかにして Perl と似せて書くか、いかにして Python と似せて書くか。 いかにして Java の言葉で説明するか、いかにして Perl の言葉で説明するか、いかにして Python の言葉で説明するか。 これらは全て尽く失敗してきている。何故なら、言語仕様を読んでいない、基本的な知識や合意事項が欠落しているから。
>>150 知ったかぶってないで、仕様を一読して出直せ。
そうすれば、ラムダがどういう言葉で書かれているかすぐに分かる。
分かったら、仕様にある具体的なその言葉を使え。
なんか最近、スレの 3割〜5割くらいは質問者同士の叩きあいじゃないか?
>>145 は大学関係者だろ。それも国立(独立行政法人)の。
よくJSで顔売ってるヤシ。
しかしラムダを知らない人間がJSの解答をするなというのは同意だ
>>157 ああ、あの既知外か。どおりで。
じゃあ、
>>150 、ラムダでいいよ。
で、そのラムダな書き方とは?
まさか、
>>146 みたいな JScript 泣かせのコード (しかし何故か最近流行) じゃないよね?
バグをよく調べて、まともなの書いてみせてよ。
>>159 この発言、ラムダが何かを知っている人間からしてみると、あまりに痛くて笑える。
なんでラムダ発言している奴が、一言「無○○○」と言わないのかが良くわかった(笑)
知らないから教えてください、って言ってごらん。ラムダは知らなくても恥ではないよ。
ラムダなんかJSには糞食らえだ。 知らんやつがビビッてるだけ。それとも、罪悪感か?
[経済学の本]|ω・)<ラムダ必須かよw文系で業務にしてない独学の人とかは習うチャンスないと思う。
羅無駄。
ここはラムダスレです。
|ω・)<知らないから文系に理解できるよう皆に教えて下さい。
>>160
>>160 洩れも教えて欲しいです。言語屋だけど理論屋じゃないので。
Churchのlambda式だったら…そういう定式化があるというだけで
JavaScriptと関係ないと思うなあ。Lispの名前束縛とかだったら…
lambda式とはあんまり関係ないしましてJavaScriptと関係ないと
思うなあ。やっぱりクロージャ分かってればそれでいいような気が
するけどなあ。
>>167 ラムダ式ってLISP”固有”あるいはLISP"発祥"だと思ってる。
JavaScriptの、無名関数≡LISPの、ラムダ式だと思っている。
とかLISP、LISP言ってる人は思ってるんじゃないのかなぁ…
LISPなんて勉強したの学生の頃だからいまいち覚えてないなぁ(笑)
ラムダフェチはそっちで新スレ立ててくれ。 ごくろうさん。
>>171 setTimeout(function(x){return function(){x.func();}}(this), 1000);
俺ならこう書く。
var referThis = this;
setTimeout(referThis.func(), 1000);
>>172 その方法はobjオブジェクトを2つ作った途端に破綻するよね。
アドバイスするなら「オブジェクトを1つしか作らないこと」
という注意書きをちゃんとつけろよな。そんなので質問者の
役に立つのかどうか知らんけどね。
|д`)< 171誰?w
nullじゃないの。よく見たらオブジェクト1つでも 絶対動かないじゃん。あほらし。
<div id="div" style="overflow:auto"> <ul> <li id="li1">1番目の項目</li> <li id="li2">2番目の項目</li> <li id="li3">4番目の項目</li> ・ ・ ・ <li id="li100">100番目の項目</li> </ul> </div> style="overflow:autoの設定により<div>ブロックにつけられた スクロールバーをスクロールしないと見えない <li id="li100">100番目の項目</li> をページのボタンクリックによって 表示領域に浮上させるにはどのようにすればいいでしょうか?
178 :
177 :2005/11/08(火) 16:17:51 ID:???
質問の仕方がまずかったです。スマソ 単純にlocation.href="#li100" だと Safariや火狐では動かなかったので overflow:autoやoverflow:scrollの表示位置を弄れる プロパティのようなものありませんかね?
一連の応酬見てて 自分の意見を人の気分を害さずに伝えられるようになると 大人だなあとか思いました。
>>177 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(id) {
document.getElementById(id).scrollIntoView()
}
</script>
</head><body>
<div style="overflow:auto; height: 2cm">
<ul><li id="l1">1</li><li id="l2">2</li><li id="l3">3</li><li id="l4">4</li>
<li id="l5">5</li><li id="l6">6</li><li id="l7">7</li><li id="l8">8</li></ul>
</div><div>
<button onclick="test('l1')">1</button><button onclick="test('l8')">8</button>
</div></body></html>
Mozilla系のVenkman みたいなDebuggerが、IE用にあったと思うんだが、探しきれない。 MSで出してた様に記憶してるんだけど、教えて。
>>182 おお、これはこれで有難い。早速インストール。
が、欲しいのはJScriptのデバッガっす。
>>184 おお、サンクス。
早速、インストールして使って見るよ。どもども。
186 :
177 :2005/11/08(火) 19:37:21 ID:???
scrollIntoView()ってMozも実装してんのね Mozって意外に盗むのうまいよな
>>188 うーん、インストールに失敗した模様。明日ドキュメント読んでみようと思ってる。
>>181 で紹介してもらった DOMインスペクタは、グーだね。
俺189じゃないけどスクリプトデバッガは結構使える。 IE標準のエラー表示が使えなさすぎってのはあるけど、エラー箇所をハイライトしてくれるだけでもありがたい。VSみたいに重くないし。
だいぶ昔からあるねw
なるほどな。 Firefox = 火狐 Gecko = 月光 なら、 Safari = 狩猟 か?でも、ピンとこんな。 些不安有とでもw
195 :
Name_Not_Found :2005/11/09(水) 12:03:29 ID:6zRpTDSD
ものすっごい初歩的な質問なんですが ウィンドウを開いた時に後ろにもう一つ新しいウィンドウを開くことは可能ですか? おねがいします^^;
可能
>>195 その問題が初歩的なものかどうか本当に分かって書いてるのか?
「初心者ですが」と同様、危険な言い訳語だと思うね。
久しぶりにきたが、なんだ?この閑散ぶりは。 しかも、質問がちょー低レベル。
配列の0-100に結構な容量のデータが入ってるとして、 それ以外の小容量の101や102を読み込むときに 重くなるということはありませんか?
function内にエラーがあると そのfunctionが永遠にループして実行されるんですが仕様? 昔はそんなことなかった気もします。 もちろんどこにも繰り返し処理させるような記述はありません。 変数名のミスタイプとかそういうレベルで起こります。 「オブジェクトがありません」とか「オブジェクトではありません」みたいな エラーメッセージがちゃんと出るときはループは起こりません。 XPSP2 IE6です。
>>200 プログラムは意図した通りには動かない。 『書いたとおり』 に動く。
>>201 いや本当なんですよ。誰も呼び出してないのにループしてます。
次再現したらコード貼りますね。
>>198 この荒れぶりなら2chすら慣れてない何もわからんやつか
ダメ元な香具師しか書かんだろうよ
ECMAの新版か、W3Cがらみで post HTML.4.01でも出るまでは こんな感じなのかもな。 つか、やっぱ、みんな勉強さえしてないちゅうことか。
仕様を読んだことさえない連中がほとんどだしな
HTMLの次というのはないんだよ(つかXHTMLがそれ)、 ほんとにWeb製作板の発言かね。
過去ログ見れば「JavaScriptの本当に難しい問題」ならこの スレでしか答えは得られないと分かるよ。めったにそういう 良い質問がないというだけで。通常レベルの質問は既に答えられ てしまってるしね。
>>208 >JavaScriptの本当に難しい問題
たとえばどんな問題?
>>209 208ではないけれど、クロージャを使ったオブジェクト間の効率的なメッセージングとか
外部XMLファイルを取得するのに httpObj.open('get',URL,true); (略) if(httpObj.status==200){ xmlObj.load(httpObj.responseText); alert('取得完了'); } という流れと xmlObj.load(URL); (略) if(xmlObj.hasChildNodes()){ alert('取得完了'); } という流れでは結果変わりますか?
>>271 xmlObjとhttpObjが何を指しているのかはっきりしないのだが、
俺の意図している通りだとすれば多分結果はかわる。
というか、上の形も下の形も問題を抱えているように見える
>>212 >何を指しているのか
xmlObj= new ActiveXObject('Microsoft.XMLDOM');
httpObj = new ActiveXObject("Microsoft.XMLHTTP");
です。
どういう問題ですか?
>>213 参考にしてちょっと試して見ます
215 :
211 :2005/11/10(木) 16:22:42 ID:???
>>213 の
if (xmlDoc.parseError.errorCode != 0)
いいですね。
実は問題だったのは
xmlObj.hasChildNodes()が全然信用できる動作をしてくれなかったので
代用でhttpObj.statusでロード完了を判定しようとしていました。
でもparseError.errorCodeを使って判定すると今のとこいい感じです。
もうちょいテストしてみますが。
xmlObj.hasChildNodes()は複数のxmlObjに対して連続して処理すると
trueを返すのに何も入ってなかったり。
216 :
211 :2005/11/10(木) 17:03:53 ID:???
連続カキコすんません。 parseError.errorCodeもやっぱダメくさいです。 問題は別のとこにあるのかも。
>>209 洩れが今までで一番感動したのは、サーバからの再読み込みなど
一切なしでフレームの中に入っているページをそのままフレーム
解除するっていう奴。
>>216 そもそも、onreadystatechangeによるコールバックを利用してる
んだろうな?読み込み開始していきなりstate見たりしてもダメ
だろうからね。
218 :
211 :2005/11/10(木) 18:20:31 ID:???
>>217 onreadystatechange使ってませんでした。
結局こんな感じにまとまりました。
rObj = new Array();
function rssObjLoader(num){
var now = new Date();
var url = URL[num] + '?nc=' + now.getTime();
rObj[num] = new ActiveXObject('microsoft.XMLDOM');
rObj[num].onreadystatechange=function(x){
return function(){
if(rObj[num].readyState==4){Reader(num)}
};
}(num);
rssObj[num].load(url);
}
>読み込み開始していきなりstate見たりしてもダメだろうからね。
不思議なんですが、読み込み直後にhasChildNodesを見に行ったとしても
childNodeがないならfalseを返してくれればいいと思うんですが
なんでtrueを返すんでしょう?
asyncにしていなければ、コールバック使用しなくてもいいんじゃない?
>>218 > rObj[num].onreadystatechange=function(x){
ここから下4行がよくわからん。xは何に使うの?
Function.call と Function.apply って何がどう違うんだい?
>>219 このスレだけでいいから過去ログ全部読め。分かるから。
>>218 それやるんだったら「obj[x]」と「Reader(x)」だろうに。
>>223 いや、そうじゃなくてさぁ…
これらは、どう使い分けるんだ?というか、
callに意味あるのか?というか、
なんで2つあるんだ?というか、
call, apply に分けてどういうところで役に立つんだろうか?というか…
何がどう違うんだい?
>>207 もっと心を読み取るようにしろ。
post HTMLというのは、versionのことではないだろ。
226 :
218 :2005/11/10(木) 19:54:36 ID:???
>>221 あれ?ほんとだ。でもこれ動いてますよ?
>>219 ロードするのがひとつだとasyncでもいいかもしれないけど
複数になってくるとほとんど固まった状態に。
OS自体応答しなくなって強制終了したこともあります。
>>222 何も指定しなければvalidateOnParseはfalseになってるということですね?
知りませんでした。まだ生半可なもので。
227 :
218 :2005/11/10(木) 20:12:28 ID:???
>>226 間違えた
ロードするのがひとつだとasyncでもいいかもしれないけど
↓
ロードするのがひとつだとsyncでもいいかもしれないけど
>>224 それはLispやってると分かるんだけど、引数を組み立てて呼ぶ
時は配列に入れて渡したいし、引数があらかじめこれとこれって
いう風に決まっている時はひらに書きたい。だから両方あるのが
普通なんだよな。
>>226 それはさあ、numがもともと関数のパラメタでループとかも
掛けてないから途中で書き換えられないためOKなんだよね。
この場合はだからわざわざfunction(x){return function ...}(y)
にする必要はないわけさ。
>>217 > そのままフレーム解除
お、それすごいな。どうやるん? 過去ログとかWebページとかにあるのかな? ヒントよろー
>>228 apply と call あんま差は無いって事ね。了解っす。
231 :
Name_Not_Found :2005/11/10(木) 23:32:56 ID:3b0zt77T
画像をクリックすると別の画像になって、 もう一度クリックすると元の画像に戻るを繰り返す こんなかんじ A→クリック→B→クリック→A→・・・ これを同じHTML内に複数設置するにはどうしたらいいの? ちなみに一つの場合は、 <SCRIPT LANGUAGE="Javascript"><!-- // 画像のURLを配列にセットする // IMG_LIST = [ "画像1", "画像2", ・・・] var IMG_LIST = [ "1.gif", "2.gif"]; var SW = 1; function IMG_CHANGE(){ document.getElementById("IMG01").src = IMG_LIST[SW]; SW += 1; if ( SW >= IMG_LIST.length ) { SW = 0; } } // --></SCRIPT> <IMG ID="IMG01" src="1.gif" onClick="IMG_CHANGE()"> なんだけど。複数設置するにはどこをいじったらいいのか教えてください。
フレーム解除? 親ドキュメントでdocument.write()すればいいだけじゃねーの? 誰でも思いつくようなw
null隔離スレなんかに誘導するな
>>232 document.write()じゃ駄目だったような。過去ログ探せば
見つかると思うけど。そうだ、逆だったかも。つまり
フレームでない状態からフレームの中に入るという…
>>231 IMG_CHANGE()をパラメタつけてIMG_CHANGE('IMG01', 1)とか
いう呼び出し方にして、定義側でもIMGの名前と画像番号を
パラメタ参照するように直す。その説明で分からなければ
それ以上説明したくないので手取り足取りに行ってくれ。
237 :
232 :2005/11/11(金) 00:31:32 ID:???
>>235 >>236 個人的にはクロスブラウザメンドクつーかメンドクセお題だなとw
(良い意味ですよw逆にそれだけ皆さんご苦労されてますなって事w)
ひとつ質問させてください。 var obj.func = function (x){ ・・・・・ }(this); の「(this)」ってどういう意味なんでしょう? どういう使い方するのでしょうか?
個人サイト運営してる人ってクロスブラウザとか考えてます? もし考えてるのならどのバージョンまでサポートしてますか?
>>238 ファンクションクロージャと一般的に呼ばれる機能の一部。
具体的には、無名関数に引数を渡すことによって、その結果を代入している。
まず意味を説明すると、例えば、
var i = function(x){ return x + 3; }(7);
という文があった場合
1:関数自体は function(x) { return x+3; } からわかる通り、
引数に3を足して返す関数であるのはわかるよね。
2:もし、function plus_three(x) { return x+3; } という文があれば、
var i = plus_three(7);
とあれば、iには10が代入されるのはわかるよね?
3:よって、下の式
var i = function(x) { return x+3; }(7);
これは、一時的に関数を作って、その関数を直後の引数(この場合は7)で呼び出して
その結果(この場合は7+3=10)を代入しているということになる。
とりあえず上がわかったら次は使い方だけど…
非力なマシンでもサクサク動くようにメモリの使用量を減らしたいです。 javascriptでは何に気をつければいいですか?
>>240 すごいよくわかった!
ありがとうございます!
でも確かにこれをどう使うかですね。
一番最初にそれを見たのはgravinessさんのこのソース
http://www.graviness.com/jslibrary/graviness-sys-Common.js じゃあこの場合は、たとえば
window.errorMessage = function() {
return location.protocol != "file:" ?
function(message) {alert(message);} : function(message) {};
}();
であれば、window.errorMessage に引数無しのfunctionを代入してるってことでしょうか。
>218 さんのソースであれば、function(x) の x にnumが入った値がonreadystatechange に代入されるということでしょうか。
>>241 あまり大きなものをメモリに格納しないこと。
functonを小分けにしてスコープを意識する
>>242 その場合、意味が無いから、
window.errorMessage = location.protocol != "file:" ? function(message) {alert(message);} : function(message) {};
と書いた方が優しい。
□ JavaScript を有効にする アクティブ スクリプト ○ダイアログを表示する ◎無効にする ○有効にする
>>242 - 「( )」で関数式や関数宣言を囲まずに実行するのは、
JScript で問題なくても、文法違反である。実際、Gecko ではエラー。
-
>>240 は、クロージャというより、i と同じスコープに
変数名や関数名を増やしたくない故の工夫であるに過ぎないが、
分かっているのだろうか。
- まず、テンプレの邦訳サイトにあるスコープチェイン
に関するまとめを読んだ方が良い。
// 宗教的でどうでも良いことだが、インデントにタブが使われているソースは例外なく(略。
>>248 マズくない。C-F8 する時に宗教による苛立ちが生じるだけ。
>>242 典型的なクロージャ。
function getNumToFun(n) {return function () {alert(n); n++;}; }
var num = 0;
var fun = getNumToFun(num);
fun();// 0
fun();// 1
fun();// 2
alert(num);// 0
まず、重要なのは、(静的な、ソース依存の、非実行時) スコープ、そして、名前。
直感的にも、実質的にも、get the function that is related to the number
だから、getFunToNum みたいに命名して問題無いのだが、
意味として、the number that is related to the function
があるから、わざわざ、getNumToFun という変な名前にしてみた。
(ただし、普通は、getCounter とか、makeCounter とかにするだろう。)
250 :
241 :2005/11/11(金) 06:41:12 ID:???
>>243 ,244
なるほど。ほかメモリ関係だけでなくてコツありませんか?
自分的にはこうした方が軽い気がします。
・ループ回数が多いならforを使わずsetTimeoutとかで10ぐらい間をおいて呼び出しなおす
・forでバッファ用変数にデータを一気に格納してからinnerHTMLで書き出すより
こまめにinsertAdjacentHTMLで書き出してその都度変数を空にする
>>250 そこまで気にするようなのは設計がおかしい気も駿河。
サーバーサイドで出来るものはCGIにする。
どうしてもクライアントで展開が必要なら、起動時間がかかるけどJAVAアプレットにする。
254 :
Name_Not_Found :2005/11/11(金) 10:46:51 ID:hRv2H2wo
textareaに入力された文章をそのページのタイトル付きで_privateフォルダに送信させたいのですが、どんなスクリプトを書けばよいのでしょうか? WinXP,IE6.0です。
フォルダに送信なんて出来ません。
>>253 それはそれとして、JavaScriptでどのようにメモリが消費されるのかは
興味があるところだな。
GCされてんのかな、ちゃんと。
GCはされてます。当然じゃん。 もっともJavaScript 1.1くらいまでは怪しいもんだったらしい。
>>257 本当にちゃんとされているのかな…特にIE。
メモリ使用量が普通じゃないくらい増えることが多いんだけど。
DOMツリーにひっつけてしまったものは確かに怪しいかも しれない。
260 :
Name_Not_Found :2005/11/11(金) 12:06:41 ID:xaCbv8im
http://www3.kcn.ne.jp/~tomate/JavaScript/color_calcu.html ↑
このページでは、「R+」や「R-」等をクリックすると、"■"のRGBの値が
それぞれ16ずつ増減します。
これを、ボタンを押してる間は数字が増え続け(減り続け)、ボタンを離すと
増減が止まるようにできないでしょうか?
(上記ページは、私が造ったものではありません。)
増え続け(減り続け)るのは、ループさせればいいと思うのですが、
それを止める方法がわかりません。
過去スレももちろん検索したのですが、いい方法が見つかりませんでした。
よろしくお願いいたします。
262 :
260 :2005/11/11(金) 12:36:46 ID:???
>>260 です。
要は、ボタンを長押ししてる間は数字が増え続けたり減り続けたりして、
クリックする事で一ずつ数字が増減して微調整できるようにしたいんです。
>>260 onmousedownでsetIntervalを使って一定時間間隔で
増やす/減らす動作を起動し、onmouseupで止める。
単なるループじゃ一瞬で最大/最小になっちゃうからだめ。
以上が方針で、あとは自分で作れ。作っていて判らないこと
があれば質問受け付けるよ。
>>260 増減のきざみを8,16,32,64等のように分けてもいい希ガス
265 :
260 :2005/11/11(金) 12:56:14 ID:???
>>263-264 アドヴァイスありがとうございます。
方針すらたってなかったので助かりました。
がんばってみます。
どのような使い方をするとメモリの使用量が増えていくのかを チェックするのは意義のありそうな研究になりそうだな。
Firefoxを一日中使ってるとメモリを100MB以上消費しちゃうけど関係あるの?
>>260 書いてみた。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var n = 10000, e, timeid;
function cnt(d) {
e = document.getElementById('d0'); e.innerHTML = (n += d); stop();
timeid = setInterval(function() { e.innerHTML = (n += d); }, 50);
}
function stop() { if(timeid != null) clearInterval(timeid); timeid = null; }
</script>
</head><body>
<div id="d0">10000</div>
<p><button onmousedown="cnt(1)" onmouseup="stop()">+</button>
<button onmousedown="cnt(-1)" onmouseup="stop()">-</button></p>
</body></html>
>>247 : - 「( )」で関数式や関数宣言を囲まずに実行するのは、
: JScript で問題なくても、文法違反である。実際、Gecko ではエラー。
どこのGecko使ってるんだか。関数式と関数宣言で全然違うだろ。
関数宣言はもともと囲めない。関数式は囲む必要なんかない。半可通すっこめ。
FunctionExpression → funciton [Id] ( FromalParameterList ) { FunctionBody }
MemberExpression → FunctionExpression | ...
CallExpression → MemberExpression Arguments | CallExpression Arguments | ...
Arguments → ( ) | ( ArgumentList )
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/A_Grammar_Summary.html
>>270 ここまでひどいアホは珍しいが、がんばってスルーしていこうぜ
272 :
260 :2005/11/11(金) 15:30:20 ID:???
>>269 ありがとうございます。
まさに私がやりたかった感じです。
よく理解した上で使わせていただきます。
ありがとうございました。
PHPのis_*、var_dumpやPerlのrefのように型を取得する関数ってありますか?
>>273 「typeof なんとか」ECMAの言語仕様(
>>5 からたどれる)
を読んでチェックしてから使わないと期待と違うかも知れないが。
>>274 有難うございます! 期待通りの関数です。
javascriptは変数にひとつしか型が存在しないと言う事で、諦めかけてたんですが良かったです。
すっこめLISP厨を、そろそろ荒し認定してもらうってのはどうだろう
277 :
241 :2005/11/11(金) 21:27:42 ID:???
>>251 え?みんな苦労してないんですか?
>>253 あえてそこをjavascriptだけで。
>>250 みたいにやるとほんと劇的に軽くなりました。
なんというかCPU時間を独占しないように?するといいみたいです。
>>256 GCってなんすか?
>>258 htaも大したことしてないのに15−20M使ってますね。
なんとかならないものですか?
>>277 まさか時間待ちをタイトループでやってたってことは…
そりゃsetTimeoutとかにするべきだろう。
>>247 の言っていること
js> var a; function x() {a = 2;}();
SyntaxError: syntax error:
js> x();
ReferenceError: x is not defined
js> var b; (function y() {b = 3;})();
js> b;
3
js> y();
ReferenceError: y is not defined
>>270 の想定する文脈
js> var c = function z() {return 4;}();
js> c;
4
js> z();
ReferenceError: z is not defined
282 :
241 :2005/11/11(金) 23:55:23 ID:???
>>281 ああなるほど、分かったよ。最外側に代入も何もなしで関数
リテラル(のつもり)を書くと関数宣言と解釈されるという問題ね。
それはそもそも関数リテラルじゃないから。
で、結局こういう特別な場合以外はかっこ不要なんでしょ。
だいたいが関数リテラルに名前書かなければ無問題。本当に
再帰のため名前を必要とする関数リテラルを最外側に書こう
としたなんて相当運が悪い。つか、まじにそんなの必要?
すまそ、最外側には名前なしでも関数リテラル書けないや。
>>282 だまされんな!
ガンダム・コレクションだ。
あっちのスレに隔離してた彼なんだけど、なんか出てっちゃった…(´・ω・`) もしこっちにもどってきたら、 ごめんなさい。 ごめんなさい。 ごめんなさい。 ごめんなさい。
var b; (function y() {b = 3;}) (); ん?これはなぜ文法が通るの?最初の括弧は文法上なにになるの?
>>287 関数定義文自体をそのまま関数として使ってるんだろ。;
function y(){var b=3;}
b;//(いらんか)
y();
といっしょ。
>>277 君がゲームオタクやガンオタにもてあそばれるのを見れられない。
GCは
マジレスすると
ガレージコレクション
キャベジンコレクションだったかな?
>>289 ごめん、さっぱりわからない。
(function y() {b = 3;}) ();
後ろの括弧は関数呼び出しだよね?ってことは前の括弧は関数を指すんだろうけれど、
function name(arg) { /*block*/ }
↑これ自体がそのまま関数としての実体を持つということなのかな?
とすると、
var x = function abc() { alert(""); };
という書き方も出来るの?
この場合、abcの使えるスコープはどこになるんだろう
>function name(arg) { /*block*/ }
>↑これ自体がそのまま関数としての実体を持つということなのかな?
そういうこと。
×>var x = function abc() { alert(""); }
関数呼び出しの括弧(?)がないでしょ。つーかxに何いれるつもり?
var x=(function abc(){alert("");return false;})();
とかだろ?
それかそれなら無名関数使えよ。
var x=function(){alert("");};
これならxは関数への参照変数。
>>281 前段は括弧なしで通らない後段は通る、違いは何?
確かにそうだが、原理がよく分からん。
後段は定数をそのまま返してるからOKなの?
ちなみにアラート分は括弧が必要。
よく分からん香具師にズババババーン var a,b,c,z; function hoge(){ piyo();x(); c=y(1); alert('y関数の戻り値:a=' + a + '\tb=' + b + '\tc=' + c + '\na=function y(){return z+2;})();\nfunction y(z){return z+1;}\nc=y(1);//hoge内'); } function piyo(){ (function x(){alert("これはhoge内のX関数");})(); x(); z=1; a=(function y(){return z+2;})(); b=y(1); } function x(){alert("これは外で定義されたX関数");} function y(z){return z+1;}
>>294 喪前のは何の説明にもなっとらん。読む気にもならん。
>>293 >この先がややこしいんだけど、関数リテラルの中で再帰呼び出しつまり
>自分自身を呼び出したい場合に備えて関数リテラルでも名前がつけられる。
そういう意味なんだ。てっきり名前空間の問題だとorz
>ガベージコレクションの説明が読みたければ
ネタなんだけど・・・ガンダムコレクションじゃたどり着けないかなっとorz
>>297 何を解説したいのか分からないので説明よろ。
>>293 なるほど、再帰などの可能性に備えて名前がつけられたのですか。
わかりやすくおしえてくれてありがとう
大したことないことで長引くな
>>298 こうかいたら怒られた。
if (!window.test) alert(1);
正直 { } 省略のどこが悪いのかワカラン。
見た目
304 :
Name_Not_Found :2005/11/12(土) 22:49:29 ID:Zf4Ae0uu
フレーム構成のページでタブキー押した時の制御が解らなくて困っています。 例えば、flam1.htmlにhoge1.gifという画像とflam2.htmlにhoge2.gifという画像があるとします。 この時、flam1.htmlのhoge1.gifにフォーカスがあたっているときにタブキーを押下して flam2.htmlのhoge2.gifにフォーカスがあたるようにするにはどう記述したらいいでしょうか? よろしくお願いします
>>304 両方の要素の tabindex の値を同じにしてもだめなら、
JSでフラグでもたててやるしかなさそうだねえ。
どうしてもやりたいならonkeydownイベントを取得して、かなぁ? やったことないし、ブラウザ依存くさいけど。
308 :
304 :2005/11/12(土) 23:12:01 ID:???
>>306 ,307
レスどうもです。
tabindexについてちょっとググッてみたんですけどHTMLのフォームでもタブキー制御ってできるんですね
最初からjavascriptのイベントでしか出来ないと思ってました。
ブラウザはIEさえできればいいので問題ないと思います。
あ〜あ。でも、フレーム構成ってのがホント面倒だな。って愚痴ってもしょうがないので試してみます
有難うございました
310 :
Name_Not_Found :2005/11/13(日) 01:13:33 ID:QEkp3U97
(´・ω・`)ノ HTML内のJS記述部分と外部JSファイルが競合してエラーが出るって ことはありますか?
ある
>>310 当り前じゃん。全部混ぜて1つのプログラムとして動くんだもん。
便乗だが、競合するのはわかるが’エラーが出る’って実際どういう場面?
<script language="JavaScript" src="f_hoge1.js"></script><!--a:中にhoge()-->
<script language="JavaScript" src="f_hoge2.js"></script><!--b:中にhoge()-->
<script language="JavaScript">
function hoge(){return 1;} //c
function piyo(){alert( hoge());}
</script>
この条件で色々試すと、cがあるとすべてc適用。
a・bは後に指定された方のJSファイルが適用されて
一向に競合でエラーが出る気配が無いんだけど・・・・
>>310 のエラーが再現できません。
変数の値が数字や文字のつもりで参照しても、 オブジェクトだとエラー出る処理もあるね。
なるほど競合自体で怒られる訳じゃなくて
競合して参照先の関数が正しく参照されなくて
エラーになるってことね。
>>313 のcがあるならcを呼び出して問題が無いけど
(それでc記述なのに外部ファイル呼ぶつもりではそいつの注意力不足)
cがなくて外部ファイルで関数名が競合してるときに
参照の書き順によって正しく参照されないよってことで宜しい?
>>315 なんか考え方が斜めをいっているというか。
ローカル変数として宣言するとか、構造を見直すとかすれば、それほど悩む問題ではないと思う。
あちこちから拾ったコードをつぎはぎで使いたいって話なら、エラー出たときに悩めばいいよ。
自分で外部ファイルとして配布したいとかなら、ユニークな名前使えばなんとかなるしょ。
どうも、310です。 会社に提出したら社長がいじってからクライアントに提出したそうで、 「なんかエラーが出るから直してくれる?」ていうんですお・・・。 クライアントのページに追記する形らしいので、エラーが出るのは 同じ変数を違うフェーズで使っていて変な動作してるとか そういうことかなと思ったのですが (´・ω・`)自分もドシロウトなのでトーシローの書いたプログラムが 読みにくくて困ってます・・・ HTMLに追記する部分を最低限にしたいのですが 変数だけHTMLに<SCRIPT>〜</SCRIPT>内に書いて 実際の処理は外部JSファイルで処理するのには 制限がありますか? 構文さえちゃんとしてれば動きます?
そこで前に話が出て来た function hoge(){(function piyo(){return 1;})();} とかで名前空間を汚さないようにするんですよ、 とかの話?
(´・ω・`)名前空間てナンですか?
>>310 全部外部ファイルで処理もできるはずだ。
>フェーズ
何それ?
競合がエラーの原因だとおもうなら、
自分の使う変数を定義前に参照してみれば?
alert(hoge);とかで
で未宣言の変数を参照してますみたいなエラーが出れば使ってないってこと
[object][unidentified]
う〜ん。別の名前にすれば?
あと、よくやるのが自分の変数・関数の頭に自分しかつけない文字入れて
他と区別する(ユニークにする)
var nullshine_hoge;
function nullshine_piyo(){//〜}
これでエラーになれば、原因は他にあるってことだ。
>>317 >実際の処理は外部JSファイルで処理するのには
例えばIEでエラーの行数見るには、外部ファイルでエラーが出るとエラー行数が狂う。
エラーを追跡したいのなら1つのファイルでいじって、動くのを確かめてから外部ファイルに追い出せば楽になるかもしれない。
>「なんかエラー」
といわれても、エラーを再現してエラー行数やメッセージの確認しないとどうしようもない訳で。
>構文さえちゃんと
プログラム(スクリプト)は思うようには動かず、書いた通りにしか動かない。
>>318 全てfunction内でvar宣言してあれば、汚染はしないわけじゃないけど意識しなくてもいいはず。そこらへんはよく知らない。
>全てfunction内でvar宣言してあれば、汚染はしないわけじゃないけど意識しなくてもいいはず。 だが、あほは変数をグローバルに置きたがる罠w 実験してみた。 <script language="JavaScript" src="f_hoge1.js"></script><!--a--> <script language="JavaScript" src="f_hoge2.js"></script><!--b--> <script language="JavaScript"> function piyo(){ alert( 'main->piyo()呼び出しhoge()内の変数a:\t' + hoge()); alert( 'main->piyo呼び出しpooh()内の変数a\t:' + pooh()); alert('mainの変数a:\t' + a);} </script> [f_hoge1.js] var a='f_hoge1ー>a'; function hoge(){alert('f_hoge1->hoge内の変数a:\t' + a);return a;} function pooh(){alert('f_hoge1->pooh内の変数a:\t' + a);return a;} [f_hoge2.js] var a='f_hoge2->a'; function hoge(){alert('f_hoge2->hoge内の変数a:\t' + a);return a;} 見事にpooh参照のaは'f_hoge2->a';。HTML参照も'f_hoge2->a';
324 :
Name_Not_Found :2005/11/13(日) 15:18:32 ID:pxBfBJpq
あー・・・いまいじくってみたら、クライアント側のスクリプトがおかしいことが 確定しました。(´・ω・`) 自分は機能拡張の追加プログラムさえ書けばいいということで、 ただの機能確認のためのサンプルにはエラー出ないので 社長にはこのまま出すです・・・ 結局のところ、クライアントのほうのページには手を出せないので・・・。(´・ω・`) クライアントのほうの現在のページ表示の際にエラーが出ないで、 自分のほうのサンプルでもエラーが出ないで、 自分のJSを追加したらクライアントのページでエラーが出るように なるということは、組み合わさると変な動きをしてしまうということですよね? (´・ω・`)こういうとき、どう対処したらいいのかな。 むしろクライアントのページ全部書き直したいくらいなんだけど、 そういうわけにもいかないのがツラス。
>>310 それでいいならいいけど、おれがクライアントなら普通それで納得しないよ。
-おまえんとこのコードがおかしいんちゃうんか?
-このサイトに合わせて作ってくれと発注したはずだ。
大体どっちがおかしいか原因を明確にしないと納得できないだろ。
まあ低レベル同士なんで結局なあなあにできる可能性大だが。
326 :
Name_Not_Found :2005/11/13(日) 15:36:28 ID:pxBfBJpq
(´・ω・`)ごめんなさい。
更にいじくってみたら、変数名がクライアントのページにもともとあった
JSの変数名とかぶっていたことがエラーの原因だったぽ・・・。
で、
>>316 さんのいうようにユニーク名使ったら即解決ですた。
(´・ω・`)ノシ おさわがせ&ありがとうございました。
これで堂々と納品できまつ。
>>326 で、この体たらくだ。
最初から変数名チェックすれば良いものを・・・
ちなみにその変数名晒してみ?
君とサイト受注者のレベルが分かる。変数名aならネ申。
ちなみに同じことで今度は自分がクレーム入らないように
使用するすべての変数・関数に統一したユニークな頭文字をつけて納品することだ。
カキコ記念で’aho310_’とかの頭でいいのでは?var aho310_a;
HTC にすれば、ファイルを越えて名前が競合することは無い。HTC の実利はこれに尽きる。 XBL にすれば、onxblconstructor などのプロパティが窓口として消極的に開放されているが、 XBL の要素間で変数の競合は無い、関数内部扱いだから。ましてや、ファイルが違えば(略。 以上で、今時の JS ブラウザシェアをほぼ 100% カバーできる。 どうせ、Opera や Safari には個別対応しなきゃならんのだから、これで良い。
>>327 Arrayでした。
クライアントのほうの変数では、a、d、i、x、pなどの変数名がありました・・・。
(´・ω・`)ネ申ですか?
ちなみに、自分は人のソースもらっていじくる程度、受注者(社長)については
JavaScriptほとんどまったく知らんそうです。
js> gc() before 2088, after 2070, break 00000000 js> new [].constructor(4).toSource() [, , , , ] js> gc() before 2097, after 2070, break 00000000 js> a = new [].constructor(4).toSource() [, , , , ] js> delete a true js> gc() before 2106, after 2070, break 00000000 js> Array = "Array" Array js> gc() before 2070, after 2070, break 00000000 js> new Array 9: TypeError: Array is not a constructor js> new [].constructor() 10: TypeError: Array is not a constructor js> a = [1, 2, 3] 11: TypeError: Array is not a constructor js> delete Array true js> Array function Array() {[native code]} js> gc() before 2520, after 2511, break 00000000
>>329 もちろん影響受けるってことはグローバルに置いてるんだよね。
救いようのないネ申だね。
332 :
Name_Not_Found :2005/11/13(日) 17:44:28 ID:TsUxXDIm
こんにちわ 早速ですが質問させてください <body>内からjava script用いて <head>内にMetaタグを挿入することは可能でしょうか? 教えてくださいまし...
>333 ありがとうございます できればどう書くか教えて欲しいでのですが オネガイします
しかしそもそも後からDOMでmetaを挿入して最初から あったのと同じに動作するかどうか?どんなmetaを 挿入したいのか。
うん、http-equiv 使うのは後から置いても意味ないと思う。 普通の name 使うのならブラウザによってはいけると思う。
338 :
332 :2005/11/13(日) 20:45:01 ID:???
ありがとうございます 挿入しようとしてるのは <meta http-equiv="refresh" content="*; url=***"> なんです やっぱり後から置いても意味ないですか...
>>338 をいをいw
setTimeoutで(ry
340 :
332 :2005/11/13(日) 21:10:43 ID:???
>>339 あ・・・
そうですね
頭固くなってました・・・
setTimeout("location.href='***';", ***);
これで大丈夫ですね・・・
ごめんなさい、お世話になりました
341 :
たか :2005/11/13(日) 23:20:24 ID:???
うたまっぷ(
ttp://www.utamap.com )のように
ActiveXをオフにしていると何も見えなくて
オンにしていると表示されるけど印刷できない
というようにするにはどうしたらよいでしょうか
つーか、あの程度で金とろうとするのは詐欺じゃなかろうか。
344 :
341 :2005/11/13(日) 23:52:50 ID:???
>>343 うたまっぷで歌詞を見ると、ActiveXをオンにしていると歌詞が
表示されますが印刷することができません。
オフにしていると歌詞自体が表示されません。
そんな感じのHPを作成したかったのですが、てっきり
JavaScriptでやっていると思ったのですが。。。
346 :
341 :2005/11/14(月) 01:39:40 ID:???
>>344 よくわかんないですけど、Flashなんですね(^^
JavaScriptで同じようなことははできないのですか?
同じようなことじゃないけどさー、 css の media=print で * { display:none } すれば結果的に出来なさそうでない?
flashはコピペ防止の意味もあるからなぁ
>>329 クライアント:(多分グローバルに)a、d、i、x、pなどの変数名
社長(受注者):JavaScriptほとんどまったく知らん
オマイ:JSの変数名(多分a、d、i、x、p)とかぶっていたことがエラーの原因
で、
>>310 世間では、これで仕事が成り立っちゃってるの?
ガクガクブルブルブル
350 :
310 :2005/11/14(月) 10:09:19 ID:???
>>349 ううん。かぶってた変数名はArrayでつ。さすがに俺でもaとか
アルファベット1文字の変数は怖くて使えないです。
ちっちゃい会社だからね〜
自分はもともとIT畑の人間じゃなくて趣味でサイト作ってる程度の人間だったんだけど
デザイナーのほうがスクリプトには無知だから入ってくれっていわれて
この程度の人間ですよ。
で、今日本納品らしいですwww
自分でもこんな会社こわいwwwww
つか、自分がクライアントだったらこんな会社に頼みたくないwww
>>310 そこまで内部告発したんなら、おまえの会社名もさらせ。
ごめんそれはwwww 入ったばかりで潰したくないんで(^ω^;)
今をごまかしてたって、いずれ大きなツケが回ってくるさ。 ぜったい転職した方がいいw
>>348 画面ショット取ってOCR掛ければ何やったって無駄。
>>354 Webサイト制作初心者用スレじゃないんだから、分かりきったこと書くなよ。
JS だけじゃなく SWF でも印刷を制御しているわけだから、
もし JS で SWF にアクセスして印刷制御を合法的に阻止できるなら答えを書けばよいわけで。
コンピュータの画面上に表示されている以上 印刷されなくするのは不可能
>>350 リフォーム詐欺元社員のコメントみたいだなw
359 :
Name_Not_Found :2005/11/14(月) 16:24:35 ID:tCn3SvUe
質問です。 -123→123 123→123 って感じで負数を非負数にするにはどうしたらいいのでしょうか?
>>359 Math.abs(x)
だが、アンタ質問があまりにも安易すぎないか?
自分で調べようとしたのか?ちょっと考えた方がいいよ。
>>360 相手を教育するつもりなら、ヒントだけにした方がいい。
よね
>>362 洩れはね、エサとムチと両方ないと駄目という考えだから。
簡単なのはとりあえずちゃんと答えた上で苦言を書くことが多い。
>>362 それだと付け上がるだろ。
>>360 くらいで十分。
一時の誰かさんみたいに>ある。
とかよりマシだし。
ま、考え方の相違だな。たぶん「絶対値」じゃまったく 分からない可能性が50%くらいだろうと予想している。
発想というか慣れというかこなした数とかの問題だしね。 小数点第2位で四捨五入したいのですが →100で割ってMath.roundして100掛けるみたいなのと、あんまし違いなさそ。 間違ってなければ回答方法は好きでいいのでは。 たしかに絶対値は算数ちゃんとやってれば分かるはずだけど。
367 :
Name_Not_Found :2005/11/14(月) 17:38:19 ID:hLNe9D7V
アクセスするたびに画像が変わるページを作るのはよくある話ですが、 アクセスするたびに画像の順番がランダムに入れ替わるプログラムどうやって作ったらいいですか? <HEAD></HEAD>を使わず、<BODY></BODY>の中だけで作りたいのですが。 画像B 画像C 画像A 画像D ブラウザを更新 画像D 画像A 画像B 画像C ブラウザを更新 画像A 画像C 画像D 画像B といった感じでランダムで
>>367 ファイル名を配列に入れるなどして、
ランダムに配列からspliceしてやればいい。
あとはわかるよね。
369 :
367 :2005/11/14(月) 18:06:24 ID:???
spliceとはなんでしょうか。
なんで自分で調べようと思わんのか。 javascrpt spliceでぐぐったら、6番目に367がほしいであろうズバリのスクリプトがあったよ。
>>368 なんでspliceがいるの? いつもの「シャッフル」でいいと思うが。
>>371 javascriptのshuffle解説頁教えてくれ。
373 :
Name_Not_Found :2005/11/14(月) 18:46:36 ID:hLNe9D7V
どこにshuffle関数があるんだ?phpじゃないんだから。
おもしろそうな題材なので書いてみました //[Array Object].shuffle() //配列内のデータをシャッフルする Array.prototype.shuffle = function() { for(var i=this.length;i>0;i--) { var j = Math.floor(Math.random() * i); this.push(this[j]); this.splice(j,1); } }
ちょっとした処理の関数をモジュールっぽく纏めたらいいのできそうだね。
>>376 var j = Math.floor(Math.random() * i);
this.push(this[j]);
this.splice(j,1);
↓
this.push(this.splice(Math.floor(Math.random() * i), 1)[0]);
かえって読みづらいか。短く書ければいいというもんでもないし。
379 :
376 :2005/11/14(月) 20:17:34 ID:???
>>377 そうですね、
みんなが協力してくれたら、すぐにでも出来ちゃいそうですよね。
おっしゃるとうり
>>378 さんのは簡潔で素敵です。
つ Ruby.js, JSAN, etc...
>>375-379 spliceだのpushだのやってたらすげーのろいよ。数個なら
いいというかんがえもあるけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<p><script type="text/javascript">
var len = 10000, a = new Array(len), b = new Array(len);
for(var i = 0; i < a.length; ++i) a[i] = b[i] = i;
var t1 = new Date().getTime();
for(var i = a.length-1; i > 0; i--) {
var j = Math.floor(i*Math.random());
var x = a[i]; a[i] = a[j]; a[j] = x;
}
var t2 = new Date().getTime();
for(var i = b.length; i> 0; i--) {
b.push(b.splice(Math.floor(Math.random()*i), 1)[0]);
}
var t3 = new Date().getTime();
document.write((t2-t1) + 'msec<br>');
document.write((t3-t2) + 'msec<br>');
</script></p>
</body></html>
→出力: 107msec 25578msec
382 :
376 :2005/11/14(月) 21:12:54 ID:???
>>381 上側はタダのランダム。値が重複する。
シャッフルの話だから上の奴は当てはまらない。
重複する?
385 :
376 :2005/11/14(月) 21:43:01 ID:???
>>383 要素入れ替えの i が a.length という指摘ですよね。
いずれにしても
>>381 さんの速度に関する考察はためになりました。
386 :
376 :2005/11/14(月) 21:49:11 ID:???
あ、まちがえた a.length+1 だった。
387 :
376 :2005/11/14(月) 21:53:13 ID:???
あ、よくみたら
>>383 さんのおっしゃるとおり 先頭要素で重複があった。
388 :
376 :2005/11/14(月) 22:00:39 ID:???
あ、とおもったら重複ではなかった。 ...シルクロード全集おわったからもう寝ちゃおっと
>>383 ランダムにi未満のjを選び「i番目とj番目を交換」してるから
重複することはないと思うのだけど、なぜ重複すると思うのか
説明キボン。
>>381 の前半のシャッフルのアルゴリズムは過去スレで
何回も出ているものと同一なんでバグはないと思うけどね。
重複すると断言している
>>383 の説明が聞きたい。
勘違いしただけだろ。そこまでえらそうに言う事でも無いだろ。
>>381 実行するとブラウザ固まるんだけどおれだけか?
>>392 この夏買ったノートPCで30秒固まったから、古い奴だと1分とか2分
掛かるかもよ。あんまり大変ならlenを5000とか減らしてみ。
>>393 celeron 1.4 256 xpsp2なんだがしょぼすぎ?
それにしても107msecってはやすぎないか?
当方Fxで94msec 13515msec
IEだと62msec 53938msec
397 :
376 :2005/11/15(火) 00:34:29 ID:???
>>389-390 まだ起きてました。些細なことかもしれないけど、
おそらく
>>383 さんの指摘したいところは、
シャッフルであるなら、以前配置されていた場所に依存せず
何れへでも再配置される可能性をもつべきところだが、
該当のコードでは、末尾に配置されていた要素は、再び末尾に
配置されることがない。
よって、厳密にはシャッフルとは呼べないのではなかろうか。
って、考えてらっしゃると思います。
>>376 シャッフルにせんずり回答すんな屑。何十回出てきてると思ってんだ。
>>397 > 該当のコードでは、末尾に配置されていた要素は、再び末尾に配置されることがない。
だうと。
ちゃんとコード読みなよ。
400 :
376 :2005/11/15(火) 00:43:35 ID:???
401 :
376 :2005/11/15(火) 00:50:30 ID:???
>>399 お風呂に入ってすっきりしたつもりだったのに...
明日の朝、もう一度見直そうと思いますorz
たとえば1秒間とか5秒間とか、指定した時間以上ボタンを押し続けて はじめて処理が始まるようにする事はできないでしょうか? ヒントだけでもいいので、よろしくお願いします。
>>402 onmousedownとonmouseupでそれぞれ時間をとって、その差を見るというのはどうだろう。
ただしドラッグも考えるともう少し条件が複雑になるが。
ローカルのHTMLファイルでhrefを参照すると、ソースが相対パスの場合 file:///c:/documents%20and%20settings/hoge/デスクトップ/test.html みたいな値しか取れないんですがもともとの値だけ取得するには どうすればいいですか?
>>404 そのリンクをIDつきのdivか何かで囲んで
document.getElementById('ID名').innerHTML
の文字列中からhref部分を取り出せば。
質問させてくださいorz リンク先をステータスバーに表示させない方法を探していまして、 見つけた方法は<A onmouseover="return true;">が多かったのですが オーバー時は確かに見えませんが、クリックすると一瞬丸見えです。。 クリックのときもリンク先は隠したいなぁと思って他に onclick と onmousedown を 追加してみたんですが、微妙にずれて表示されます(´・ω・`) なにか他に考えられる手立てはありませぬでしょうか・・・。 また、すべてのリンクに対してステータスバーに表示させてくないんですけど、 どのように記述すればいいのでしょうか・・(;´ω`)
>>402 mouseup する前でも時間が来たら処理を開始するなら、setTimeout と clearTimeout。
mouseup 直後に経過時間を判定して処理を開始するなら、
>>403
>>408 性悪スクリプトは回答されない
>>2 さいなら。
>>406 ローカルに持って来て加工すんなら
>>407 みたいにbaseつけても
いいしPerlとかで全部加工したっていいわけだろ。なんでJSなわけ?
411 :
260 :2005/11/15(火) 14:37:09 ID:???
>>263 >>264 >>269 いまさらですが、やっとうまくいくようにできました。
出来上がってみると結構単純だったのですが、それ以外でも
文法ミスがあったりして、なかなかうまくいかなかったわけです。
今までほとんどJavaScriptは使った事がなかったのですが
今回必要にかられ勉強しまして、当初計画していた事以外でも
使えそうなテクニックを見つける事ができたのも収穫でした。
今後も、より充実させていこうと思います。
ありがとうございました。
412 :
408 :2005/11/15(火) 14:47:04 ID:???
性悪にはいるのですね(;´ω`) リンク先があまりにも長くて汚いので隠そうと思ったのですがorz レスありがとうございました。。
>>412 分かるけどアンタが隠すことができれば他の悪徳釣り業者にも
隠せるようになる。だから回答されない。
>>408 ユーザーにとってステータスバーに表示される URL (特にそのドメイン部分)は
有益な情報になる。隠すなら、最低でもドメイン部分だけでも表示されるようにしなさいな。
416 :
406 :2005/11/15(火) 19:13:31 ID:???
>>407 xmlhttpでとってきたデータを加工するのでbaseが使えないです。
>>410 クライアント側だけで動くものにしたいのでperlとかは考えてないんです
質問です。
マウスを乗せると表示されて、どけると消えるポップアップメニューのようなものを作ったのですが、
offsetTopとoffsetLeftで位置を取得しても、なぜか位置がずれてしまいます。
おそらくCSSとJavascriptの呼び出されるタイミングの違いとかで問題が発生していると思うのですが、
よくわかりません・・・。
http://readcgi.s7.xrea.com/404/8322.zip
質問です。 Movable Typeで「カテゴリー」や「アーカイブ」を プルダウンメニューで表示したかったのですが、 ググッた2、3のパターンでは上手く動作しませんでした。 プルダウンのメニューは生成されるんだけど、 項目を選択してもリンクに飛ばないのです。 そこで、以前教えてもらった別口のコードで代用しています。 今の所、一応、正常に動作はしています。 ただ、当方初心者なもので、そのソースが正しいJavaScriptなのか判断がつきません。 コードを貼付するので、検証して頂きたいです。 もし間違った箇所があるようなら、訂正して頂けると有り難いです。
<script language="JavaScript"> <!-- function newLocationWindow(uri) { if (uri) window.open(uri, 'link','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes'); } //--> </script> <!--アーカイブ --> <form name="pulldown_monthlyarchives"> <select name="menu" onChange="newLocationWindow(this.value)" style="width:160px;"> <option value="" selected>Monthly Archives</option> <option value=""></option> <MTArchiveList archive_type="Monthly"> <option value="<$MTArchiveLink$>"> ・<$MTArchiveTitle$>[<$MTArchiveCount$>]</option></MTArchiveList> </select> </form>
421 :
181 :2005/11/15(火) 21:59:45 ID:???
419-420 イメージしてるのは こんなのかな ? www17.ocn.ne.jp/~addict/sample/dbl_selection/dbl_selection2.html
>>419-420 別に問題なし! 自信を持ってよい。nullのアドバイスは
聞かない方が身のため。nullは隔離スレへ帰れ。
424 :
406 :2005/11/15(火) 22:10:38 ID:???
>>417 それがそう単純でもないんですよ。
ローカルでの実行パスが
file:///c:/documents%20and%20settings/hoge/デスクトップ/hoge/hoge.html
だとして、URLが
http://hogehoge.com/~hoge/web/contents/hoge.html でソースが../../test/test.htmlだとしたら
javascriptでhrefを取得すると
file:///c:/documents%20and%20settings/hoge/test/test.html
になるわけです。
で生成しなくちゃいけないのは
http://hogehoge.com/~hoge/web/test/test.htmlです 。
ソースが単にtest.htmlならば
file:///c:/documents%20and%20settings/hoge/デスクトップ/hoge/test.html
が返されるので実行パスを取得してreplaceすれば済みますが。
さらにローカルの実行パスがfile:///c:/hoge.html みたいにドライブルートだった場合、
ソースがtest.html や ../test.html や ../../test.htmlであったとしても
取得できるのはすべてfile:///c:/test.html になってしまい、
そこから正しいURLを生成することは不可能です。
>>423 ここに顔を出すのは客引きのため.
講釈を垂れるつもりはない.
こちとら, ここのご大層な人たちと違って, だだの作り手なのさ.
講釈垂れないのは結構。さっさと帰ってくれ。レスの無駄。
>>422 ちょっと微妙に違う気も
ごめんなさい
>>423 検証感謝です
問題無さそうなのでこのまま継続して使ってみます
428 :
Name_Not_Found :2005/11/16(水) 00:20:14 ID:+uwZ1/V6
javascriptでform内のすべての(入力)項目を配列に格納し、 それらの背景色に従って処理を行いたいのですが、 form内の全項目を取得するような記述方法について教えて頂けますでしょうか? nameに依存しないで行いたいと思っているのですが。
>>428 これでわかる?
document.forms['hoge'].elements
辞書じゃねーから独り事w IE6にて getAttribute("href",2) が設定値通り返すとある。
431 :
406 :2005/11/16(水) 03:47:24 ID:???
>>430 結果かわりませんでした。
ソースどこですか?
JavaScriptで起動中のウィンドウ(ブラウザのみでOK)を 列挙することは可能でしょうか? たとえば、タイトルバーに「ABC」という文字列を含むウィンドウを 全て列挙し、背景色を変えたりなど行いたいのですが。 ご存知の方がいらっしゃいましたらお教えください。
433 :
Name_Not_Found :2005/11/16(水) 13:58:56 ID:qK/HmDjm
じゃヴぁscりptで 「JavaScript」という もじを れんぞくして 10かい ひょうじする やりかたが わかりません だれか おしえてください でも おしえた おれいに あげる しょうひんは なにも ないので かくごして ください
ひさしぶりにアルジャーノン読みたくなった。
435 :
Name_Not_Found :2005/11/16(水) 15:32:13 ID:qbpIFYsI
Java初心者ですが、Javaを使って下記の様なメニューリストを作成したいと思っています。 ↓こっちのメニュー(リンク)にカーソルを合わせる ┌─┐┌───┐ ├─┤│ │ ├─┤│ │ ├─┤│ │ └─┘└───┘ ↑こっちに説明&リンク表示(最初から文章) <外部CSS> #left{float:left(以下略)} #infospace{省略} <head>〜</head>内 <script language="javascript"> <!-- function p(x) {document.getElementById('text').innerHTML=x;} --> </script> <body>〜</body>内 <div id="menulist"><table><tr><td onmouseover="this.style.backgroundColor='#ffffff'" onmouseout="this.style.backgroundColor=''"> <a href="左側のリンクURL" onMouseOver="p('右側に表示される説明')">左側に表示されるリンク</a></div></td></tr></table> <div id="infospace">右側のエリアに最初から表示される文章</div> としたのですが、右側のエリアにリンクを貼る事ができません。 1、左側のメニューは全てリンクです。 2、右側のエリアには最初から説明文を表示させます。 3、左側の各リンクにカーセルを合わせた時に、右側のエリアに説明を表示させ、 なおかつ説明内にリンクを設置したいのです。
436 :
435 :2005/11/16(水) 15:33:56 ID:qbpIFYsI
図ミス…orz ↓こっちのメニュー(リンク)にカーソルを合わせる ┌─┐┌───┐ ├─┤│ │ ├─┤│ │ ├─┤│ │ └─┘└───┘ ↑こっちに説明&リンク表示(最初から文章)
>>432 できません。できたとしても自鯖の窓以外はタイトルのアクセス、
背景色の変更とも不可能と思われ。
>>435 まず
>>1 を読め。で、Javaの話題はここじゃないんだ。で、
'text'というIDの要素はどこにあるのさ。で、何をやったが
リンクが現れないと言う話なのさ。何をやったのか説明せずに
うまく行かないと言われても。日本語の不自由なヤシの相手は
あんまりしたくない。
440 :
435 :2005/11/16(水) 15:59:16 ID:qbpIFYsI
>>440 「Java Script」ではない、「JavaScript」だ!
日本語が分からないのか、説明じゃなく実際にやったことを
そのまま書き、エラー内容と行番号を報告しろ。または、
アップしたソースをそのエラーの出るヤシに変更しろ。
>>437 やっぱりそうですか。。
早速のレスありがとうございました。
久しぶりだな。JavaScriptをJavaというアフォ もう絶えたかとおもってたが・・・
>>440 文字列の中のaタグの閉じタグを 「'...</a>'」とそのまま
書いているせいでは?「'...<\/a>'」に直してみれ。
>>446 なるほど…試してみたらできました。
ありがとうございました!
450 :
Name_Not_Found :2005/11/16(水) 20:40:07 ID:Xxzo/fZU
DOMを使ってチャットを作ってるんですが、ローカルで動いて鯖上で動かないです。 スクリプト晒すので原因分かる方いたら教えて下さい。 var oldtime = ""; function Load(){ var sc = document.createElement("script"); sc.setAttribute("src", "./test.js"); document.getElementById("aaa").appendChild(sc); if(oldtime != lasttime){ GetLog(); var node = document.getElementById('log'); for (i = 0; i < 20; i++){ if(node.childNodes[0] != undefined){ node.removeChild(node.childNodes[0]); } } for(i in Log){ document.getElementById('log').appendChild(document.createTextNode(Log[i])); document.getElementById('log').appendChild(document.createElement('br')); } } window.setTimeout("Load()", 1000); }
上げちゃった・・・済みません test.js(ログ)の形式 lasttime = "1132139576"; function GetLog(){ oldtime = lasttime; Log = new Array(,'test>test1','test>test2','test>test3'); } 相当汚いスクリプトかもしれませんが、よろしくお願いします。
書き忘れ、最初の一度だけログ読み込みは動作します。 二度目以降は何故か読み込めません。 ローカルではtest.jsを更新するたびに文字列が変化するのですが・・・
>>452 「"./test.js"」を「"./test.js?" + new Date().getTime()」にするとか。
個人的には、そんなに何度もGetLog関数を多重定義してしまうと 色々と問題がおこりそうで怖い。Operaとかで動くのかなぁ?
456 :
Name_Not_Found :2005/11/16(水) 21:22:01 ID:Xxzo/fZU
>>453 試しましたが動きませんでした。
これで鯖側で動かないの二回目なんですよね・・・
すみません、吊ってきます・・・
>>455 js> // function F() { ; } var i = 0, o = new Object(), a = new Array();
js> for (i = 0; i < 65536; i++) { ; } gc();
before 2151, after 2151, break 00000000
js> for (i = 0; i < 65536; i++) { function F() { ; } } gc();
before 2169, after 2151, break 00000000
js> for (i = 0; i < 65536; i++) { F = function () { ; } } gc();
before 2169, after 2151, break 00000000
js> for (i = 0; i < 65536; i++) { function F() { ; } F(); } gc();
before 2169, after 2151, break 00000000
js> for (i = 0; i < 65536; i++) { F = Function(); } gc();
before 1181799, after 2151, break 00000000
js> for (i = 0; i < 65536; i++) { o = new Object(); } gc();
before 591975, after 2151, break 00000000
js> for (var i = 0; i < 65536; i++) { a = new Array(); } gc();
before 591975, after 2151, break 00000000
多重定義w少なくともJ(ava)Scriptの話じゃないな。
ActiveXObject("Microsoft.XMLHTTP") ってオブジェクトつくってopenしてsendした後closeする必要ない?
>>460 殆ど全部実装依存なので好きにしれ
/*
オブジェクトに close メソッドがないので多分必要無い。
もし明示的にサーバーへの接続を閉じる事を伝えたいなら
O.setRequestHeader("Connection: close") する。
リソースを明示的に解放するなら O = null して GC を待つ。
*/
>>461 さんくす。
ついでですまん
delete O と O = null って違いある?
>>450 if(node.childNodes[0] != undefined){
node.removeChild(node.childNodes[0]);
}
}
node.innerHTML='';
で問題あるの?
>>459 function hoge(){
var len = arguments.length;
if(len==0){return 0;}
else if(len==1){ return len[0];}
else{
var re=len[0];
for(var i=0;i<len-1;i++){re=re*len[i];}
}}
>>450-451 じゃよくわからんな。
>for (i = 0; i < 20; i++){
同じ処理20回もやる必要あるの?変数iも入ってないし。
書き込みがどうなってるか分からんな。
JSファイルを書き換えてるのか?
あと鯖上げ駄目な原因は、文字コードの問題とかあるのでは?
>test.jsを更新するたびに文字列が変化するのですが
とかあるし。
あと./test.jsこれは鯖でちゃんと参照されてるのか?
>>465 厨な質問者よりさらにコードが(そして日本語も)読めないヤシが
回答しようとすな。
(1) ループの中でLog[i]を参照してるだろボケ!
(2) test.jsは最初の1回は参照できてると書かれてるだろボケ!
>>465 childNodes[0]をremoveしたらchildNodes[1]がchildNodes[0]になるじゃん
>>466 Log[i]はどこにあるかちゃんと見たのか
つっても俺も解決策わからんけどな!
window.showModalDialog()で開かれたページで window.location.reload(true); としてもリロードされないのですが、showModalDialog()で 開かれたページはJavascriptで自信をリロードできないのでしょうか?
CGIの内部にjavascriptを組み込んでいます。 表示されている画像をクリックすると、さらに詳細の画像が表示されるようにしたいのですが print "<A onclick='StartShow(0, true, \"<IMG src=04/$hogehoge.gif>\")' onmouseout=\"StartShow(0, false, '')\">\n"; print "<IMG src=\"04/$rank/$IMAGE.jpg\"></A>\n"; と書いたとき、$が悪いのか、上の文章だけ<A>タグ自体反応せず、 CGIは動作しますが、HPのステータスバーにはエラーが発生しました。の文字が出て、詳細の画像がひょうじされません。 $なしの別画像の場合、ちゃんと表示されるのでjavascriptの表記はあっています。 javascript で使えない文字というのを調べてみたら予約語は出来ないというのはみたのですが・・・ ”$” が使えないのでしょうか? もし使えるようにできるなら対処方法をアドバイスしてください;; ($hogehoge は変数なので$を使わないようにすることは出来ないのです・・・)
>>469 > javascript で使えない文字というのを調べてみたら
CGIスクリプトを書いている言語についても調べてみれば解決するだろう。
>>468 ShowModalDialogで開いた窓は色々制約があるからね。普通の窓に
するしかないかも。
>>469 ブラウザの「ソースを見る」で表示させたソースを見ればエラー
の原因が分かると思うけど。貼ってみて。
472 :
469 :2005/11/17(木) 22:38:16 ID:???
ソースをみるときちんと$hogehogeに代入されていました・・・ $で異常が出ていたわけではなかったようです。すいません。 ただソースの内容が、 <A onclick='StartShow(0, true, "<IMG src=04/hogehoge1 .gif>")' onmouseout="StartShow(0, false, '')"> <IMG src="04/rank/image0.jpg"></A> と途中改行されてエラーが出ていたようです。 これはperlのエラーですかね・・・(;´ω`) サイト回るか・・・
473 :
469 :2005/11/17(木) 22:48:09 ID:???
何度もスイマセン。無事に解決したので報告しておきます。
CSVの中身を読む$hogehogeだったのですが、
CSVの表の末の列だったために”,”の部分で勝手に改行される
というののでした。。。orz
CSVに追加の列をしたところ無事に表示されました。
>>470 >>472 さん、ありがとうございました。
474 :
468 :2005/11/17(木) 22:49:47 ID:???
>>471 そうなのですね。わかりました。ありがとうございました。
475 :
406 :2005/11/17(木) 23:48:39 ID:???
時間たってしまったのでまとめます。
>>404 ,405,406,407,410,416,417,424,430,431
<div id='test'><a href="hoge/web/test.html">hoge</a></div>
aObj.href
aObj.getAttribute('href')
aObj.getAttribute('href',2)
aObj.getAttributeNode(href).nodeValue
aObj.outerHTML
document.getElementById('test').innerHTML
といろいろ試しましたがもともとのソースの値が取れませんでした。
xmlhttpで取得したソースの段階でhref="をsearchして中身をsubstringして
リストアップするしかないですか?
なんか他に使えそうな方法ありませんか?
条件演算子のことなのですが、条件式の評価が真のとき(または偽のとき)に、 複数のステートメントを指定することは可能でしょうか?
えー、innerHTMLでもだめなの。そりゃ大変だなあ。
>>476 「演算子」だから「式」しか駄目。式でよいならカンマ演算子
を使えば「条件 ? (式, 式, ...) : (式, 式, ...)」とは書ける。
ちなみに「x = 1」なんていうのも式だからね。
480 :
406 :2005/11/18(金) 00:45:35 ID:???
自作コードで大体の場合、 相対→絶対に変換できるようにはなってますが やはりソースのパスがローカルのドライブルートより 上位のディレクトリを指す場合に対処できません。 ローカル実行パスをより深くすれば変換に失敗することは ほぼなくなると思いますが、確実ではありません。 ユーザに「できるだけ深いパスで実行してね」というのもおかしな話ですし。
>>480 IE 独自で、getAttribute に 2 番目の引数があって、それを 2 に、というレスがあったはず。
結局、元の値をそのまま取ることが無理であるブラウザがあるから困るということだろうか。
元の値ではないが、httpで始まる値になっても構わないなら、
<iframe> にアクセス可能な位置の文書を読んでおいて、
frames[***].document.open, write, close で <base href="http..> ごと書き出す。
そして、frames[***].document.links で読む。
そのhttpで始まる値で実際に書く部分の href を全て書き換える。
つうか、そのまま <iframe> 使えばよいわけだ。 <base href> が毎度変わるなら、open, write, close、変わらないなら、innerHTML などで。
483 :
406 :2005/11/18(金) 02:46:53 ID:???
>>483 どういう風に試した?とりあえず手元のIE6ではwww.google.co.jpでアドレスバーに
javascript:alert(document.getElementsByTagName("a")[8].getAttribute("href",2));
と打ち込むと /preferences?hl=ja と表示されるのだが。
485 :
406 :2005/11/18(金) 05:47:48 ID:???
>>484 ショッキングなことが判明しました!!
元からあるAはソース通り相対パスを取れますが
動的に作成したAはローカル絶対アドレスになります。
[ テストコード ]
<html><body>
<input type="button" value="href取得" onclick="alert(test.getElementsByTagName('a')[0].getAttribute('href',2))">
<input type="button" value="A要素を新たに作成" onclick="test.innerHTML='<a href=\'test.html\'>後から作成したA</a>'">
<div id="test"><a href="test.html">元からあるA</a></div>
</body></html>
@「href取得」ボタンを押すと相対パス「test.html」と表示。
A「A要素を新たに作成ボタン」を押してtestDIVの中を書き換える。
B「href取得ボタン」をもう一度押すとローカル絶対アドレスを表示。
これはどうしたもんでしょう
486 :
406 :2005/11/18(金) 06:00:08 ID:???
いいこと思いついた。 ActiveXObject("Scripting.FileSystemObject")あたりで ローカルに保存後iframeに読み込めばこのおかしな動作を回避できますね
>>467 なるほど配列の先頭を20回削除するわけね。
っておい。
while(node.hasChildNodes()){
node.removeChild(node.childNodes[0]);
}
って普通書かんか?まあ個人で作ってるだけだと思うが
忘れた頃にレスを30行は保存ようと仕様変更すると
忘れてるだろうな。
そして苦しむだろうな。
可読性もカンガエレ
テーブルタグのなかの一つのセルの値をJavaScriptで 取り出したいのですが、可能でしょうか? もし可能でしたらやりかたを教えていただけたらと・・・
>>488 過去スレに多数あるから過去スレ全集を検索すれ。
それすらできない奴は帰れ。
禿しくガイシュツ 値を取り出したいのですが→innerHTML/DOM テーブルタグ→getElementsByTagName('table/*tbody/tr/td*/')/getElementByID('hoge') あとは探せるだろう?
>>489 ,490
すみません。がんがったら見つかりました。
492 :
Name_Not_Found :2005/11/18(金) 14:32:11 ID:6cQ3hBom
JavaScriptのプルダウンメニュー、外部JSファイルに移せますか?
493 :
Name_Not_Found :2005/11/18(金) 14:43:31 ID:5W309NII
特定のリンクの色をjavascriptで変える方法教えて下さい
494 :
Name_Not_Found :2005/11/18(金) 14:43:31 ID:6cQ3hBom
出せました。 本当にありがとうございます。
496 :
Name_Not_Found :2005/11/18(金) 19:47:06 ID:jo8vFZMZ
コメント欄にリンクを貼ることはできますか? 見れない人はこちらにどうぞ^^みたいな
497 :
Name_Not_Found :2005/11/18(金) 19:54:21 ID:jo8vFZMZ
あと、ジャバスクリプトの外部ファイルを一度読み込んでしまえば、
以降はダウンロードしなくてよいと思うんですが、
その場合、絶対パスにしなければならないとかいうことはないですか?
つまり、相対パスだったら、階層が違うと、記述が違いますよね。
jsファイルが一階層目にあって、
それを三階層目から呼ぶなら
../../〜js
ですが
それを四階層目から呼べば
../../../〜js
になります。
この「../」が一つ多いか少ないかでブラウザは違うものと認識したりすることはないでしょうか?
玄人の方ご教授願えますか?
絶対パスだったら
src="
http://www. 〜.com"
で統一されると思うので、安心なんですが
>>497 ブラウザはすべてのURIの相対パスは絶対パスに変換して
保持するはず。だから問題なしと思う。
>>496 我々はアンタの「コメント欄」がどれだか分からんのだけど。
日本語で分かるように質問書けないのなら帰ってくれ。
>>493 別に普通のテキストの色変えるのと同じだろ。過去スレ
全集に山程ある。探せないならカエレ。
499 :
496 :2005/11/18(金) 20:46:32 ID:jo8vFZMZ
500 :
Name_Not_Found :2005/11/18(金) 20:58:58 ID:jo8vFZMZ
</a> 閉じ忘れました。
>>499 htmlとしてはコメントでも、スクリプトは認識するから、それではJavaScriptがエラーを吐く。
どうしてもやりたいのなら、
JavaScriptの処理で表示させないものを入れてみれば?
<div id="nonjs">こちらへどうぞ</div>
document.getElementById('nonjs').style.display='none';
試してないけどこんな感じ.
どうしてもまではやりたくはありません。 502さんご親切にありがとうございます。 つけてみようかなくらいに思っていたことでしたが そんなに難しいとは。 修行してきます。
>>499 ,
>>502 ECMA357-1
Firefox1.5でてすと。
<script type="text/javascript"><!-- situmon(); //-->
<a href="http://pc8.2ch.net/test/read.cgi/hp/"></a>
</script>
エラー無し。
<script type="text/javascript"><!-- situmon(); //-->
var x = <a href="http://pc8.2ch.net/test/read.cgi/hp/"></a>;
alert([typeof x, x.toXMLString()]);
</script>
結果: xml, <a href="http://pc8.2ch.net/test/read.cgi/hp/"/>
502だけど、実はテストしてなかったのでやってみた。 <script type="text/javascript"> <!-- <a href="asdf">asdf<\/a> alert("asdf"); //--> </script> IEだと、エラー吐かないけどアラートウィンドウが出ない。 aタグの行を削除するとアラートウィンドウが出る。
506 :
Name_Not_Found :2005/11/18(金) 22:25:11 ID:efAInlyV
iframeの内容のリロードはできないのでしょうか?
<HTML>
<HEAD>
<script language="JavaScript">
<!--
function reload(){
//iframe.location.href = "
http://www.google.co.jp ";
//↑iframeの変更はできた
iframe.location.reload();
//↑リロードができない
}
// -->
</script>
</HEAD>
<BODY>
<input type="button" onClick="reload()" value="更新">
<iframe name="iframe" width="600" height="400" src="
http://www.goo.ne.jp ">
</iframe>
</BODY>
</HTML>
よろしくお願いします。
素直に、noscript教えてやれよw
>>506 ドメインが違えば出来ない可能性が高い。
509 :
496 :2005/11/18(金) 22:58:19 ID:???
496です。 やはりちょっと難しいようですね。 たかがリンクでしょ。って思ってた自分が情けないです。 皆さんでも意見が割れるのだから私なんかはまだまだ使えませんねorz
510 :
496 :2005/11/18(金) 23:00:06 ID:???
というか意見は割れてないようですね。失礼しました。 読解力もなく、髪もなくなってきていることに気づく今日この頃です。
scriptタグの内側がなんでコメント欄なんだかいまだに 分からないんだけど… document.write('<a href="...">...<\/a>'); とかすればリンク入れられるけどそれじゃ駄目なのかな。
>>506 ドメイン違うページを表示させたとたんに何も操作は
できなくなる。と思え。リロードしたければ次のように。
iframe.locaion.href = 'about:blank';
setTimeout(function() { iframe.location.href = '本来のURI'; }, 10);
>>511 大雑把に回答すると、htmlじゃないから。
スタイルシートも囲むね。
515 :
496 :2005/11/18(金) 23:22:01 ID:jo8vFZMZ
>>511 ジャバでメニュー更新していけば楽だろうと思いまして・・・
さらにジャバが見れない人にはサイトマップに行っていただこうかなと・・・
私が素人すぎるため、皆様の思考の前提が少し違ってきているのかもしれませんが、
<NOSCRIPT><A href="
http://www.2ch/sitemap.html ">サイトマップをごらんください</A></NOSCRIPT>
という感じでしょうか・・・
PHPは軽いとは言いますが、実感としてはJAVAと比べたら遅いと思いますので
じゃばとじゃばすくりぷとは別物だよ。 それから、カタカナで書くと分かりづらいから止めとけ。
>>511 HTMLでは知らないタグは無視するという決まりがある。
だから、<SCRIPT>document("hello")</SCRIPT> と書いていて、
<SCRIPT>、</SCRIPT>を知らない(JavaScriptを知らない)ブラウザは
document("hello")
と画面に表示する。こまるだろ?
> HTMLでは知らないタグは無視するという決まりがある。 そんなのあったっけ?
520 :
496 :2005/11/19(土) 00:42:44 ID:???
showModalDialog()で開かれたページ内のsubmitで サーブレットでsendRedirectで自ページを呼び出すと ブラウザが中央に表示されてしまいます。 ブラウザの位置を保持したままsendRedirectできないものでしょうか?
523 :
Name_Not_Found :2005/11/19(土) 10:51:05 ID:Jkia+LVn
Nullまたはオブジェクトではありませんの警告を回避する手段はないでしょうか? やりたいことは、 左右フレーム構成のページで 左フレーム(left)にmidiのオンオフ用のスクリプトを 右フレーム(right)に<span id='aa' style='position:absolute;top:0'> <embed src="a.mid" width=0 height=0 loop=-1>"; </span> と記述しておき、 左フレームでボタンを押すと parent.right.aa.innerHTML=""; を実行させ、オンオフをさせようとしている。 右フレームのページに<span id='aa' ></span>が記述されていないときに スクリプトの実行を止めてエラー警告が出ないようにしたい。 です。
>>523 普通にif文とかでaaがあるかどうかで枝分かれすんでしょ。
何が問題なの? if文が書けないというのならここで質問する
以前の問題だから自分で勉強すれ。
>>522 showModalDialog()を呼び出した側の元のページに
「window.name = '名前'」で名前をつけておいて、
submitするフォームのtargetにその名前を指定する
んではどうかな。
525 :
522 :2005/11/19(土) 11:17:59 ID:???
>>524 ありがとうございます。
そのようにしてあるのですが中央にいってしまいますorz
>>525 ModalDialog側から元窓は参照できるんだっけ?もしできるなら
元窓のページ遷移させてModalDialogは単に閉じる、とか。
それもだめならModalDialogをあきらめて普通の窓にするしかないか。
527 :
523 :2005/11/19(土) 11:41:04 ID:???
>>524 すみません。aaがあるかどうかで枝分かれさすのは良いのですが、
そのaaがあるかどうかの条件式がわからないのです。
>>527 だったら最初からそう書けって。
if(parent.right.aa)でいいだろ。
画像をクリックしたとき そのクリックした画像上の座標を取得するにはどうしたらいいでしょうか?
ウィンドウのサイズから、画像の位置を引く 方法は調べればたくさん出るので聞くのは無しね
531 :
:2005/11/19(土) 18:54:38 ID:???
すみません、困ってます。 3つのテキストボックスcalc_01〜3の値の合計を、「計算」ボタンを押すと”calc_all”に合計を表示したいのですが、うまく動きません。 正確に言うと、「計算」ボタンを1回クリックするのは問題ないのですが、値を変えて、再度「計算」ボタンでエラーになります。 これどうしてなのでしょうか? お教えください。 ■3つの値 <input type="text" name="calc_01" size="7" readonly> <input type="text" name="calc_02" size="7" readonly> <input type="text" name="calc_03" size="7" readonly> ■ボタン <input type="button" value="計算" onClick="calc_gokei()"> ■合計を表示する <input type="text" name="calc_all" size="8" readonly> ■JS部分 function calc_gokei(){ if(document.form1.calc_01.value){calc_01gokei = document.form1.calc_01.value} else{calc_01gokei = 0} if(document.form1.calc_02.value){calc_02gokei = document.form1.calc_02.value} else{calc_02gokei = 0} if(document.form1.calc_03.value){calc_03gokei = document.form1.calc_03.value} else{calc_03gokei = 0} calc_01gokei = parseInt(calc_01gokei) calc_02gokei = parseInt(calc_02gokei) calc_03gokei = parseInt(calc_03gokei) calc_gokei = calc_01gokei + calc_02gokei + calc_03gokei document.form1.calc_all.value = calc_gokei }
>>531 readonlyなんて久しぶりに見た。
手取り足取りと被るので悪いがパス
他の回答者の為に、エラー内容も書くように。ノシ
>>531 関数名と変数名は同じ名前空間だから衝突したら駄目よ。
にしてもエラー内容書かない奴は2度と来るなよ。さいなら。
534 :
450 :2005/11/19(土) 23:21:25 ID:???
相当無駄な処理してましたね・・・ いろいろと知らない処理があったのでそれを使うと相当綺麗にまとめる事が出来ました。 有り難う御座います。 で、しばらく弄ってみてました。 結果、結局鯖上では var sc = document.createElement("script"); sc.setAttribute("src", "./test.js"); document.getElementById("aaa").appendChild(sc); の部分が上手く動作しないみたいです。 鯖上で外部ファイルを何度も読み込む手段はないでしょうか、自分では調べましたがajaxしか見つからなかったので、よろしくお願いします。
535 :
523 :2005/11/20(日) 00:03:30 ID:???
>>528 ありがとうございます。
if(parent.right.aa.innerHTML)で動かないかやっていたので
動かないはずです。大変助かりました。
>>534 // まだやってたのか。
pathname までの src が不変だと、ブラウザが HTTP リクエストしないんだから、
"test" + (new Date).getTime() + ".js" みたいなリクエストさせりゃいいじゃん。
Apache なら mod_rewrite 使って、
RewriteEngine On
RewriteRule (.*/test)\d*(\.js)$ $1$2 [L]
みたいにできるわな。//完全にスレ違いスマソ
>>535 JS 有効の今時ブラウザを使っている人が、サイト作者の意図に従って
フレームのまま閲覧しているわけではないから、その right がやばい。
フレームのまま閲覧していたとしても、ロードのタイミングがある。
right という名前から想像すると left から操作するのだろうが、
仮にそうだとすれば、right の HTTP レスポンスが来ていない場合が想定される。
その IE 独自の短縮した記法を使わない場合、以上から、最低でも、
parent.right && parent.right.dcument && parent.right.document.getElementById("aa")
のような段階を踏まなければならない。
もう少しまともにするなら、ユーザがフレームに別ホストのドキュメントを
読んでいないかチェックする (try catch) べきだし、そもそも、parent のような
非予約語は簡単に上書きされる (このスレにも Array という変数名を使った人の報告があった)
わけだから、JavaScript (!JScript) では、
"parent" in this && parent instanceof Window からチェックしなければならない。加えて、
&& parent.right && parent.right instanceof Window のように続ける。
>>534 だいたいがその「aaa」というIDは何の要素に振ってるのかな。
過去スレ全集によると、ソース読み直しはscript要素のsrc属性に
値を入れるだけでできるので、わざわざscript要素を新たに追加
することに意味があるのかどうか疑問だしな。まあ、先人の知恵を
無視して苦労したいのなら勝手にという感じ。
539 :
Name_Not_Found :2005/11/20(日) 18:14:20 ID:OAm97Nli
http://firefox.geckodev.org/ このサイトは、メニューにマウスを乗せるとサブメニューが出てくるんですけど、
これをJavaScriptで実現する方法なりヒントなり解説なりをしているサイトを
教えていただけないでしょうか?
上記のサイトはPHPを使ってサブメニューが出てくるようにしてるみたいなんですけど、
JavaScriptでもできますよね?
ぐぐりたくても、これに関する検索キーワードが思いつかなくて調べようがないんです。
マウスを乗せるとサブメニューが出現するようなテクニックを、一般的になんと呼ぶのかも分からないので、
検索のしようがありません。検索キーワードだけでも教えて頂けないでしょうか?
それよりも、ずばり方法を教えて頂けるのなら非常にありがたいのですが。
>>539 PHP は関係ない
メニューは JavaScript
541 :
539 :2005/11/20(日) 18:28:38 ID:???
>>540 レスどうも。やっぱりJavaScriptですか。
ぐぐり用の検索キーワードは何がいいんでしょうか?
調べたくても調べられない・・・
>>538 >>536 > pathname までの src が不変だと、ブラウザが HTTP リクエストしない
>>542 だからそれは「?+ランダム」をつけるんでしょ。そんなの
即回答されてたじゃん。
>>543 pathname に ? はつかない。よく読め屑野朗。
>>543 >>536 > "test" + (new Date).getTime() + ".js"
まあJSを再読み込みするっつー設計を見直したほうが早い気も。
547 :
593 :2005/11/20(日) 20:14:49 ID:???
Ajax で取得して eval にぶちこんだら?
名前ミスった!
>>547 src 書き換えも Ajax と呼ばれることもある、ごく普通に。
XMLHttpRequest のように、もっと具体的な正しい言葉を使え。
ここは JS スレなんだから、そういう buzzword を使って素人を煙に巻く必要は無い。
>>539 のサイトのJSのソース見たんだけど、
あれはソースを見せたくないから
わざとあんなに複雑にやってるの?
(改行なしのすっごい長い1行とか)
> src 書き換えも Ajax と呼ばれることもある 嘘だろ?
src 書き換えが Ajax と呼ばれたことなんて古今東西ただの一度も無かったもんな
うわwwwww漏れwwwAjax駆使しまくりんぐwwwwwwww
555 :
550 :2005/11/20(日) 21:50:59 ID:???
>>551 (´・ω・`)はい。見なかったことにします。
はてなだけど、 Asynchronous JavaScript + XMLの略称。 JavaScript の組み込みクラスである XMLHttpRequest を利用した非同期通信を利用して、ウェブブラウザ上で既存の枠組みにとらわれないインタフェースを実現するための技術。 とあったんだが違うの? おれもそう思っていたのだけど。
557 :
531 :2005/11/21(月) 02:37:19 ID:???
>532.533 ありがとうございます。 未だ奮闘中で、ご指摘の部分確認してみます。
別にsrc書き換えでも読み込みは非同期だから別にいいんじゃないの。
>>539 確かにJSファイルの最初の塊は夜勤明けの目には酷だった。解読断念。
やり方は色々あるだろ。ここはulとli使ってたけど
それとかテーブルのTDにメインメニュ、別のTDに消してあるテーブル仕込んでもいいし
めんど臭きゃ絶対値でdiv貼りつけてもいいのでは?
四角の装飾はCSSか?分からなければテーブル枠でカコワルク逝け。
display=='none'とかくらい知ってるだろ?
>>1 の全集サイトで検索かければ今まで出てきた'サブメニュー'のことは載ってる。
装飾はCSS
>>8 だ。
>ずばり方法を教えて
やらないのがこのスレの伝統。
メニューの人、手とり足とりスレ逝ったら。すごく面倒くさい からあそこで質問答えようとしてるヤシが喜ぶかもよ。それで どうなるかまでは責任持たないけど。検索してきっちりできてる ライブラリを取って来るのが一番楽だとは思うね。
561 :
Name_Not_Found :2005/11/21(月) 16:04:07 ID:uOLj0JwD
<span id="kan29">(G_G)</span> <script> kao29 = new Array();y29 = 0; yt29 = 0; kao29[0] = "(C_C)"; kao29[1] = "(G_G)"; function laykao29(){ if(document.getElementById){ document.getElementById('kan29').innerHTML=kao29[y29];} if (y29<kao29.length-1) { y29++; } else { y29=0; } yt29 = setTimeout("laykao29()",500);} laykao29(); </script>
>>561-562 最近の議論の成果(名前空間を汚染しないバージョン)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<span id="kan29">(G_G)</span>
<script type="text/javascript">
!function() {
if(!document.getElementById) return;
var e = document.getElementById('kan29'), i = 0, a = ['(C_C)', '(G_G)'];
setInterval(function() { e.innerHTML = a[i]; i = (i+1)%a.length; }, 500);
}();
</script>
</body></html>
>>558 非同期じゃあないわな。部分的と言いたいなら言葉がおかしい。
567 :
566 :2005/11/21(月) 18:08:40 ID:???
試したら、非同期だった..orz
script 要素の動的書き換えが IE で非同期実行されるなんて周知の事実だろ。 対して Opera、Gecko 系では実行が終わってからステップが進む。
>>563 () を書かずに ! を書いて一文字節約ですかw
でも ! を書いたらブックマークレットには使えないし、実用性に欠しくなりませんかねww
>>569 どのブラウザも読み込み完了を待たないから。結局、<img>とかといっしょ。
画像のポップアップスクリプトについて質問させてください。
http://web.paulownia.jp/script/sample/popup.html ↑このスクリプトが大変気に入っているのですが、
できれば「クリックで開閉」ではなく、「マウスオーバーで開き、マウスアウトで閉じる」
という挙動に変更できないかなぁと思っています。
JavaScriptの知識は全くと言っていいほどありません。
おわかりの方がいらっしゃいましたら、アドバイスをいただけませんか?
よろしくお願いします。
>>572 そのページを表示して、アドレス欄に
JavaScript:document.body.innerHTML=document.body.innerHTML.replace(/onclick/g,'onmouseover');focus();
と入力し、Enter
>>573 さん
ありがとうございます。
やってみたところ、マウスオーバーで画像がポップアップしました。
しかし、ポップアップを閉じることはできませんでした…
わからないなりに理解してみたところ、
「onclick」の文字を「onmouseover」に置き換えるのですよね?
(書き忘れて申し訳ないのですが)それは既に試したのですが、
「マウスオーバーで開き、クリックで閉じる」という挙動になってしまいました。
「サムネイルからマウスが離れると閉じる」という挙動が理想的なのですが、
引き続きアドバイスを募集させてください。
>>574 どういうイベントの種別があるかくらい自分で調べなよ。
そんなおんぶにだっこな奴、誰も相手にしないぞ。
クリックで閉じるところで他のイベントを試す
>>575 さん
ありがとうございます。
昨晩2,3時間ほど検索してみたのですが、上記のスクリプトを元にやりたいので、
望む結果が得られませんでした。
自分でいろいろ考えたところ、
onclick="popupImage('l_neko1.jpg')"
の部分で、
「クリックしたら」「popupImageという関数を呼ぶ」「引数はl_neko1.jpg」
という命令を出しているように見えます。
function popupImage(filepath){}
という関数の中に、さらに関数(function closeImage)があるのですが、
そちらを呼び出すにはどのようにすればいいのかわからず、
くじけてこちらに書き込みさせていただきました。
<img src="s_neko1.png" width="128" height="96" onclick="popupImage('l_neko1.jpg')">
を、
<img src="s_neko1.png" width="128" height="96" onmouseover="popupImage('l_neko1.jpg')" onmouseout="closeImage()">
と書き換えたりもしてみたのですが、うまくいきませんでした。
また、closeImage関数を外に出してみてもうまくいきませんでした。
僕の知っているキーワードが底をついたせいで、Googleも力を発揮してくれません。
力を貸していただけませんでしょうかm(_ _)m
追加して表示する部分でイベントを拾う。 しかし、この方法でマウスとおるだけで画像表示されたら邪魔でかなわないな。
579 :
572 :2005/11/21(月) 20:38:32 ID:???
>>576 さん
ありがとうございます。
なるほど!と思いました。
popupImage.imgNode.onclick = closeImage;
の部分を、
popupImage.imgNode.onmouseout = closeImage;
に変更したところ、マウスアウト時に閉じるようになりました。
本当にありがとうございます。
その関係でまた質問が浮かんでしまいました。
>>577 にも書いたのですが、関数の中の関数(閉じる部分)を直接呼び出すということはできないのでしょうか?
現状では、「ポップアップした画像からマウスアウトすると閉じる」なのですが、
さらに「サムネイルからマウスアウトすると閉じる」という処理を入れたい場合は
どうすれば良いでしょうか?
と、ここまで書いておいてあれですが、試行錯誤してみます。
ホントにありがとうございました。
580 :
572 :2005/11/21(月) 20:44:03 ID:???
>>578 さん
>>579 のようにしてみたら、マウスアウト時に閉じるようになりました。
まだ問題があるので再試行してみます。
実際にやりたいことというのは、
「[画像A]のサムネイル→マウスオーバー→[画像A]の元画像がポップアップ」
ではなく、
「同一の小さいアイコン(が並んでいる)→マウスオーバー→[画像A]のサムネイルがポップアップ」
という形です。
小さく端っこの空白部分にポップアップさせるので、邪魔にはならないと思います。たぶん…
最後になりましたが、
>>573 さん、アドバイスありがとうございます。
>>580 アンタは検索とかする以前に、JavaScript本を1冊通読する
べきだな。スレの浪費だ。
582 :
572 :2005/11/21(月) 23:09:10 ID:???
>>581 さん
質問者のくせに生意気なことを言うのもあれなんですが、
本を買うまでもないような小ネタなので、検索→質問→本を購入、という流れになるのがふつうだと思います。
「本買って読め」ではスレの存在意義が不明ですよね。
先人の知恵をお借りしようと甘い考えを持ったのが悪かったです。ごめんなさい。
しかし、いくつかのアドバイスのおかげで、ようやく望んだ動作ができるようになりました。
今後JavaScriptに触れることは無いと思いますが、ありがとうございました。
おまいら落ち着けよw またーり行こうぜ
Tipsスレにnullが住み着いたのか nullのスクリプトがTipsになるなんてうんざりするな
>>586 'tips' と言ったって, 誰も見向きもしない廃墟だ.
そもそも, それらしきものも未当たらない.
だからこそ, 誰にも迷惑を書けずに徹底サポートが可能だと考える.
最初は"ばからしい" と思える質問に取り組んでいて
逆に教えられることも少なくないんだ.
'手取り足取り'も 似たりよったりの糞スレだったのだが...
まっ, 愚痴っても始らない...
588 :
Name_Not_Found :2005/11/21(月) 23:53:10 ID:aTO5p4zo
外部テキストファイルから文字列の一部を取り出して それを表示させたいんですけど、どうすればいいでしょう? 検索したりはしてるんですが、なかなかわからなくて キーワードだけでも教えてもらえるとありがたいです。 検索が下手なだけかもしれませんが。 よろしくお願いいたします。
587失せろ
>>588 たぶん, ここで質問しても 煽られて終わりになるんじゃないかな ?
(常連の全員がそうだとはいわないけど, 排他的な方向がここの特色)
無理にとは言わないけど廃墟にお越しくださいませ.
591 :
Name_Not_Found :2005/11/22(火) 00:10:15 ID:qqKNG9DA
588
>>590 仮に答えてもらえなくても
おそらくそれはこちらの努力が不十分だからだと考えています。
このスレでは以前にも私が悩みに悩んだ事の解決の糸口を
もらったりもしてますので、そういう批判をする方の書き込みに
従いたいとは思いません。
親切心からの書き込みかもしれませんが、解答者の気分を害するような
書き込みには疑問を感じます。
>>591 句読点が,.になっているのがnullってやつ。
このスレ最近知ったのならスルーでいいよ。
593 :
Name_Not_Found :2005/11/22(火) 00:14:15 ID:+vTNM7Gz
<html> <head> <script><!-- function gegege() { alert(document.all.item("hoge")); } --></script> </head> <body> <p name="hoge" onclick="gegege();">aaaaa</p> </body> </html> nullになってしまうんですが、なぜでしょう。
>>591 As you like it !
I don't care about that.
595 :
Name_Not_Found :2005/11/22(火) 00:17:59 ID:weTWx2h1
CGIでクッキーに保存したユーザー名を、JavaScriptで表示させる事はできるのでしょうか?
>>595 できるよ
ドメインが同じで指定されたpathなら
javaはよくしらんが <p></p>じゃなくて<a></a>じゃね?
598 :
593 :2005/11/22(火) 00:43:33 ID:+vTNM7Gz
もしかして、divやpにname属性ないの?
>>598 あっちのスレで null にレスもらってんじゃん
>>582 あんたの場合、系統的な理解がなさすぎて回答者は
もちろん自分の時間も無駄にしすぎなのが明らか。
あんたが系統的な勉強したくないというのは勝手だが、
その状態で以後ここに質問しにくるのはやめてくれよな。
てなことがあんたの質問見れば常連にははっきり分かるのさ。
>>590 このスレは
>>1 に「道場訓」があるように、質問者も回答者も
まっとうなJavaScript使いとして向上することをめざしている。
だから向上する気のない奴は叩かれる。それだけさ。
>>593 >>598 もちろんないとも。ID振ってgetElementById()使え。
あと、HTMLでその要素の位置より「後」にスクリプトを
書かないとまだ定義されてないんで参照できないだろ。
しまった、最後のは撤回、関数呼ぶ時点ではもうあるんだから 問題なかったよな。
604 :
Name_Not_Found :2005/11/22(火) 16:38:32 ID:zRqoY3ki
aspファイルの1フォーム内にて可変(3個〜10個)のコンボボックスがあり、 その中で同じ値が選ばれているものがあった場合はalertを出したいのですが、 どのようなものをつくればよろしいのでしょうか?
>>604 ASPかどうかには関係ないだろ。それにHTMLには「コンボボックス」は
ないと思うが、選択メニューのことかね。そうだとして、それらに
「sel1」「sel2」… のような規則的な名前をつけておき、
var v, e, o = new Object();
for(var i = 1; e = document.forms.フォーム名.elements['sel' + i]; ++i) {
if(o[v = e.options[e.selectedIndex].value]) alert(v + 'が重複してます。');
o[v] = true;
}
とかかな。試してないが。
606 :
Name_Not_Found :2005/11/22(火) 18:02:39 ID:cPJlODMf
var data function XMLHttp(f,l){ var xml var xml = new XMLHttpRequest(); xml.onreadystatechange = function(){ if (xml.readyState == 4 && xmlhttp.status == 200){ data = xml.responseText; //alert(xml.responseText); } } alert(data); こんばんは、お世話になります。 firefox で グローバル変数の data に xml.responseTextの内容を入れるには どうしたら良いのでしょうか?。IEではこの書き方でグローバル変数 dataに データが入るのですがFirefoxではグローバル変数のdataにデータが入りません。 alert(xml.responseText);でデータがあるのは確認しました。
open と send は書き込み用に省略か? あと、非同期というのはそういうものだから、試しに、 open(??, ??, false) してみれば。
はじめまして。 文字サイズ変更のJavaを使いたく過去ログの + JavaScript の質問用スレッド vol.34 + を検索しやってみましたが 知識不足もあってうまく行きません。 お手数をおかけしますが、文字サイズ変更のJavaに関して ページ化されているところなどあったら教えていただけないでしょうか。
まっさらなページに組み込むとうまくいくのですが デザインが入ったものに組み込めませんでした。 職人さんを探し依頼してみます。
611 :
職人 3 :2005/11/22(火) 18:49:51 ID:???
新しいコテハンか?本とウザイな
613 :
606 :2005/11/22(火) 20:51:59 ID:cPJlODMf
function XMLHttp(f,l){ var xml; var xml = new XMLHttpRequest(); xml.onreadystatechange = function(){ if (xml.readyState == 4 && xmlhttp.status == 200){ data = xml.responseText; //alert(xml.responseText); } xmlhttp.open('GET',f,true);//true,false xmlhttp.send(""); } こうでした<(_ _)> firefoxはfalseにしたらopenそのものがこけてしまうしまうらしく上手く行かないのです。
614 :
606 :2005/11/22(火) 20:57:25 ID:???
>>613 xmlhttp.status == 200 > xml.status == 200
訂正(^^;
dataに新規の情報が入るまでsleepするとかしないと無理なのでしょうか?
>>613-614 だからさあ、readyになった時にはじめて残りの(やりたい)動作を
実行するように書けばいいんでしょ。具体的にはonladystatechange
の関数からそのやりたい動作をやる関数を呼び出すようにすれ。
sleepなんてないがな。
>>610 そういう場合は「うまく行かない最小限のサンプル」を
作って来い。作れないならそういう作業には能力不足だって
ことだ。
FireFoxでsynchronousにXMLHttpRequest.sendしようとしたら なんかやたら応答に時間がかかる問題があったんだけどそれとは違うのかね。 プロキシかましてモニタしたらリクエスト送ってからしばらく沈黙してやがった。 1.5RCにしたら直ったけど
> firefoxはfalseにしたらopenそのものがこけてしまうしまうらしく つうか、まずは、MSXML や Mozilla のサイトに書いてある通りの順番で書けば? どこでも最初に open 書いてるだろ。 それと、そもそも MSXML を真似たのに、後発の Mozilla その他は、すんごい独自路線。 だから、onload とか勝手に作ってて、これらの方が正常動作する。
javascript:var d;var x=new XMLHttpRequest;x.open('GET',location.href,false);x.send(null);d=x.responseText;alert(d) このスレで試すと、alert にちょっと時間がかかるが、問題無い。 false にした時に onreadystatechange で readyState == 4 を確認しているのなら、それ自体がおかしい。
621 :
Name_Not_Found :2005/11/23(水) 03:40:17 ID:XzT5W7P4
JavaScriptでポップアップウインドウを実装したのですが レイヤが増えると、マウススクロールの速度が遅くなります(win/IE)。 みなさんはそのあたりのパフォーマンス問題はどうしていますか?
パフォーマンスに影響が出るほど酷使しない方針。
>>614-615 以前のスレでsleepしたい→ないわヴォケ論争があった記憶がある。
>>1 過去スレ全集で調べて見れば
624 :
606 :2005/11/23(水) 09:46:30 ID:???
おはようございます
テストで拡張子がrdfのファイルを読み込もうとしていたのがいけなかったようです(^^;。
解った後で振り返ると何処かのサイトでfirefoxは拡張子に制限があるような記事を
見かけた記憶がありました・・・。
本来はphpファイルの結果も読みたいのですが回避方法などあるのでしょうか?。
var d;
var x=new XMLHttpRequest;
x.open('GET','index.txt',false);
x.send(null);
d=x.responseText;
alert(d);
>>615 ,617-620,623
皆様、色々なご意見ありがとうございます。
IEではこのままでは動きません。今回はfirefoxの問題だけでしたので抜粋しました。
>>624 Gecko系(とうかまっとうなブラウザ)ではコンテンツの種別は
サーバが返す HTTP Content-typeヘッダで判別する。普通PHP
はtext/htmlを返すから問題ないんじゃないの? RDFが駄目って
いうのはよく分からんけど…
教える気が無いやつらはレスする必要ないよ? っていうか知らないだけなんじゃないの?wwwwwwwwww
627 :
606 :2005/11/23(水) 13:13:14 ID:???
>>625 色々試していてわかったなのは拡張子がrdfであったり、拡張子がphpの場合でもデータにxmlが
入っていると読み込みに失敗するようです。
確かセキュリティ関係でXMLHttpRequestの問題があったような記憶があるのでFirefoxでは
データを返さないようになっているのではないでしょうか?。それともxmlとして解釈してたり?。
XMLで問題が起きるのは単にXMLが間違っている (well-formedじゃない)とかじゃないの?
629 :
606 :2005/11/23(水) 15:17:25 ID:???
>>623 ネットで拾ってきた物で試したけど拡張子xml なら読み込める内容でもrdfでは読み込めないので
firefoxの仕様の可能性が高い。正しくはresponseTextでは読み込めないという事で拡張子がrdf
の場合に限り他の展開の仕方があるのではないだろうか・・・。
それはそうとphpは<?でphpが処理するから<?xml version="1.0?>の時点でデータがおかしくなって
いるのだとさっき気づいた(−−;。
>>629 そういえば前に実験したときXMLデータはresponseTextからは読めな
かったような気がする。
631 :
606 :2005/11/23(水) 15:46:51 ID:???
>>630 firefoxは拡張子がrdfの時にsend(null)した時点でエラーになりますね。
responseXMLはnull返ってくるし・・・。
RSSも展開したい今日この頃(−−;。
632 :
606 :2005/11/23(水) 15:56:00 ID:???
firefoxでrdf読む場合はoverrideMimeTypeを追加すると読めるようになりました(^^ 日記って突っ込まないでね(--;
押したら 保存するファイル名を指定してダウンロード開始できるようなボタンは作れないでしょうかね 保存するファイル名を指定してというのは ファイル保存のダイアログで本来のファイル名でなく デフォルトで入る初期値を指定できないかということです。 できないですかね? IEだけで動くでもいいんですが
つ ActivX
ActiveXObject
636 :
Name_Not_Found :2005/11/24(木) 10:13:49 ID:Vv7DO1QR
>>636 どう考えても自分でちょっと勉強すればできるだろ。
なんで煽りだけの書き込みするんですか? そんなに暇なんですか?
>>638 「ちょっと勉強すればできる」というのは重要な情報だろ。
本当に難しければちゃんとヒントあげるって。勉強する気が
ない奴は帰れ。
>>636 ,
>>638 sample:
www17.ocn.ne.jp/~addict/sample/dbl_selection/dbl_selection2.html
641 :
Name_Not_Found :2005/11/24(木) 12:12:23 ID:OizhvPkU
質問です。 HTML本文のタグにはjavascriptを記述しないでID定義だけ、javascriptは外部ファイルに、といった縛りで onMouseOverを使って画像を変化させることは可能ですか? 自分でもちょっとやってみたのですが問題点がまったく分らず上手くいきません。ご教授願います。
>>641 Not necessary 'id' for this case:
function f(x){
i.src='***1.png';
}
<img alt="***" src="***0.png" onmouseover="f(this)">
・incorrect: i.src='***1.png'; ・correct: x.src='***1.png';
644 :
Name_Not_Found :2005/11/24(木) 12:45:23 ID:OizhvPkU
>>642 ,643
ご丁寧にありがとうございます。
私の説明不足で申し訳ないのですが、
提示していただいた場合だと、imgタグにonmouseover="f(this)"
を記述しないでidだけ記述し、外部ファイルにonmouseoverを記述することはできるか?という質問をしたかったんです。
>>644 document.getElementById('ID名').onmouseover = function() { ...動作... };
を実行させればほぼ同じことになるから。ただしthisを渡すのならもうちょっと
工夫が必要だけどね。
647 :
Name_Not_Found :2005/11/24(木) 13:31:54 ID:Vv7DO1QR
>>639-640 申し訳ございません。上司が当初に指示出したことと
違うこと言い始めたのでイラッときていました。
どうもありがとうございます。
'`,、('∀`) '`,、
>>647 「検索」ボタンで→そのボタンのonchangeハンドラで動作起動
選択したメニュー項目番号の取得→そのメニューのselectedIndexを参照
ページ遷移→location.href に行き先URIを入れる
どれも過去ログに全集に山盛り実例だらけだ。
650 :
Name_Not_Found :2005/11/24(木) 17:12:25 ID:VAel6FWO
こんばんわ。 txtファイルから1行ずつ読み込むという作業をさせようとしたんですけど、 if文のa.Peek()あたりで 「オブジェクトでサポートされてないプロパティまたはメソッドです。」 というエラーが出ます。 何卒ご指導お願いいたします。m(_ _)m var fs, a; b = new Array(); fs = new ActiveXObject("Scripting.FileSystemObject"); a = fs.OpenTextFile("D:\\test.txt", 1, false); for(i=0;a.Peek() !=-1;i++) { b[i] = a.readLine(); } a.Close();
WSHスレに逝くべきでわ。
>>650 ReadAllで改行splitするほうが簡単
そのときは3種類もある改行コードに注意
>>653 すっこめ!! 文法エラーだったら実行に入らないから「オブジェクト
でサポートされてない…」が出ることはない。デタラメなアドバイス
を偉そうに語りに来るな!
同じ名前のエレメントが1つあるか複数あるかという判定は どのようにしたらいいでしょうか? 1つのときは frm.hoge.checkedでとるのですが 複数のときは frm.hoge[i].checked というようにとり方を変えないといけないようなのですが
>>655 仕様書っつうか各ヴェンダの使用説明書嫁。
ついでに、おまいだけじゃないが、
>>2 (2)
>同じ名前のエレメント
なんて曖昧に書くな。<input name..> みたいなのでいいから短いHTMLを書け。
>>655 「同じ名前のエレメント」と書いた場合、それはHTMLのエレメント、
つまり「div要素」とか「ul要素」などのことで、アンタの質問は
1つのページにdiv要素なりul要素なりが2個以上あるかどうかを
調べたいという意味になるんだな。自分の用語がいかにいい加減
か思い知れ。
>>656 の突っ込みも中途半端。HTMLを書いても間違った
用語が救済されるわけじゃない。正しい用語を学ぶべき。
アンタが使うべき用語は「フォームの入力部品(ないしコントロール)」ね。
で、アンタがやりたいことは「if(frm.hoge.length)」で枝分かれ
すればいいんじゃないかな。
一個の場合はfrm.hoge.lengthで取れないみたいです。 複数の場合は取れるのですが
>>655 getElementsByTagName
661 :
Name_Not_Found :2005/11/25(金) 12:17:48 ID:ZOGoxPaR
<FORM name="TestForm" action="" method="POST" target=""> <TABLE border="1" cellspacing="0" cellpadding="0" width="100%"> <TR> <td>1位</td><TD> <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> <td>2位</td><TD > <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> <td>3位</td><TD> <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> </TR> </TABLE> <TR><TD><INPUT type="submit" value=登録 name=B1 onClick=""></TD></TR> </FORM>
662 :
661 :2005/11/25(金) 12:18:59 ID:ZOGoxPaR
このようなフォーム(aspでセレクトボックスの数は可変になります。)にてSubmit時に 同じ値が選ばれていたらalertを出すJavaScriptを作りたいのですが、 どのようなものを作ればよろしいでしょうか?
>>662 そのような物を作ればよろしいかと思われますw
javascriptにエラーをキャッチするなんてできるの?
「すっこめ」は、人のレスの批判ばかりして 自分はまともな解答すら出さない。 できない。できる。勉強しろなどと意味のないレス消費。 荒しといわれても仕方がないと思うが
>>668 ごちゃごちゃしすぎて、どこがどうなってるのかさっぱりわかりませんorz
わかりやすいサイトないですか???
ランダムリンク作ってたんですけど 同じウィンドウで開いてしまうのですが 新しいウィンドウで開くようにするにはどのようにすればいいでしょうか? ちなみにソースは function randomLink(){ figure1 = document.links.length; window.location = document.links[Math.round(Math.random() * figure1)]; } <input type="button" value="ランダムリンク" onclick="randomLink()" /> です よろしくお願いします
window.open
>>657 >アンタが使うべき用語は「フォームの入力部品(ないしコントロール)」ね。
何だこの仕様未読者は。笑わせる。
一番肝心なのは、要素名と、name 属性 (CDATA) なのか、id 属性 (ID) なのか。
だから、HTML の断片を書けば一目で分かる。
>>664 try文というのがあるけど。自分で調べれ。
>>665 アンタのは人のレスの批判じゃないのか。しかも
>>657 は
回答がついてるだろ。目が見えないのか。
ここまで読み飛ばした
ラジオボタンで選択されてる値をループ無しで取得する方法ありませんか?
>>676 簡単.
サンプル作っても良いけど, どお ?
>>676 onpropertychange="if(this.checked)radioVal=this.value"
radioValを他で参照。だめ?
もしループが面倒なのならソイツにはそれ以上何も まともなものは作れないと思われ。放置推奨。
最速マンセー。。。
var a = []; a[500] = "hoge"; とかやったら、501個分リソース確保されちゃう? それとも、a[500] だけ?
684 :
676 :2005/11/26(土) 18:30:10 ID:???
ありがとうございます。
>>679 さんのonpropertychangeを使わせていただきます。
selectedIndexのようなものが無くて不思議に感じていたのです。
じゃあラジオ使わないで全部セレクトで作ればいいんじゃね?
ガキの能書き。唯一まともな部分だけを抜粋。
ttp://la.ma.la/blog/diary_200511260950.htm > 例えば2chのJavaScript質問スレなど、いまだに
> 「ポップアップウィンドウを制御するにはどうしたらいいんですか?」
> というようなレベルである。
> 今実際行って確かめてみたら本当にそうだから救いようがない。困る。
> これはもうなんというか技術レベルどうこうの問題ではなく、
> 単純に時間軸がずれているとしか思えないのである。
> ポップアップウィンドウなどもはやブロックされるのがデフォルトなのだから
> 使うこと自体間違いだ。
ブックマークレットで フレームの各ページの更新日時を表示できるのない?
688 :
Name_Not_Found :2005/11/27(日) 15:20:21 ID:bPOsRgMQ
ie6 スレから来ました。ie5 用として配布されている MSの Web Accesories に入ってる image list (imglist.htm) を ie6 でも動作させる方法をどなたかご存知ありませんか。 <button onclick='window.location.reload("true");'>Refresh</button> を加えろというアドバイスはウェブ上で見つけたんですが,やはりうまくいきません。 数ヶ月間日本語以外のサイトも検索してますが至りません。 すみませんが識者の助言を請いたく思います。
その数ヶ月間を検索に費やすか勉強に費やすかによってだいぶ違っただろうなあ。もったいない。
690 :
688 :2005/11/27(日) 16:00:43 ID:???
>689 耳の痛いお言葉です。orz
>>687 うーん、Mozで試してみたけどセキュリティ制約で止められてしまう。
もしそうだとすればどうにもならなさそう。各フレーム別個になら
できるかな?
javascript: var s='',a=window.frames;for(var i=0;i<a.length;++i)
s+=a[i].document.lastModified+'\r\n';alert(s);void(0);
>>688 今からでも勉強する気があるのなら勉強すれば。その気なら
応援するけどね。で、今までのところ何をどうやって見たのかな。
何もやってないとかだとアドバイスしようがないんだけどね。
693 :
688 :2005/11/27(日) 17:41:04 ID:???
>692 ie6 では手動でリロードすると従前(ie5.x)同様に動作するので,強制的に リロードする手順を加えることになるのかな,と。 (起動ドライブ)\windows\web\ にある imglist.htm の先頭行に,引用した <button onclick='window.location.reload("true");'>Refresh</button> を付け加えてはみたのですが...。
>>693 あのさあ、そのimglist.htmというのはどこにある何なのか
我々は知らないんだけど。強制リロードは
「window.location.reload(true);」だ! "true" じゃなく true
ね、文字列じゃなく論理値リテラルの「真」。しかしそもそも
ローカルマシン上のHTMLでそれがうまく働くかどうか知らないよ。
なんだか、やりたいことを改めて書いてもらってここで全部
作った方が問題がないような気がするけど、何をやるHTMLなの?
>694 全く説明不足でした。特定のウェブページ中の,画像ファイルのURLとピクセル数を新しいウェブページに 表示させるものです。
696 :
687 :2005/11/27(日) 20:23:18 ID:???
>>691 参考にして作ってみた。
見栄えもよくしようと表示幅とか位置とかいじってたら長くなってしまった。
javascript:void(function(){var s=''; var l=1; var a=window.frames;if(a.length)
{l=a.length;for(var i=0;i<a.length;++i){s+=a[i].document.lastModified+' : '+a[i].name+'<br>';}}
else{s=document.lastModified;};var w=window.createPopup();
w.show((screen.availWidth-300)/2,(screen.availHeight-13*l-15)/2,300,13*l+15);
w.document.body.innerHTML='<div style="font-size:13px;border:2px solid black;
width:100%;height:100%;padding:3px;">'+s+'</div>';}())
あ。IE専です。
>>695 こういうのかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var w = window.open('about:blank', '_blank');
for(var i = 0; i < document.images.length; ++i) {
var e = document.images[i];
w.document.writeln(e.src + ' ' + (e.width*e.height) + '<br>');
}
}
</script>
</head><body>
<p><img src="t0.png"></p><p><img src="t1.png"></p><p><img src="t2.png"></p>
<p><button onclick="test()">Test</button></p>
</body></html>
699 :
Name_Not_Found :2005/11/27(日) 21:32:37 ID:2EMxXpV+
>>699 素人でも、IE、Fx対応なんてざらなのに、何言ってるわけ?
>>699 まあ、このスレ的に言えばキチガイだが別にこのスレは
他人を改宗させるスレじゃないのでね。
>>699 は、自分の論争(笑)相手を貶す為に貼ってんだろうけどさ、
アンカー遡ってくとかなり笑える。
なんか見る気しないんだが
つける薬なし、ってことで。
全ての関数が呼ばれた時に、ある別の処理を通したあと、 それぞれの関数に飛ばすというのは可能でしょうか。 可能ならデバッグ等で便利かと思うのですが。 Function.prototypeになにか追加すればいいかと思いますが、 わかりません。
>>705 それは無理でしょ。関数定義を取り出して、「別の処理」の
後それを呼ぶような関数に差し替えることはできるけど、
素直にJSデバッガ使うのがいいんじゃないの。
>>705 >全ての関数が呼ばれた時に、ある別の処理を通したあと、
>それぞれの関数に飛ばすというのは可能でしょうか。
「すべての関数が呼ばれた時」でないといけないの?
「すべての関数を、ある別の処理を通したあとそれぞれの関数に飛ばす」なのか?
参考に
ttp://user.ftth100.com/mirrorhenkan/javascript/read.php?key=1022077876&st=51&to=67 【本文2*】↓
イマイチだが作ってみた。
function deb(){//第1引数はflag、後の引数iが順次関数this.func[i-1]の第1引数になる。
this.funcs= new Array();
//ここに調べたい関数を羅列
this.funcs[0]=function(){ return arguments[0]*3;};
this.funcs[1]=function(){ return arguments[0];};
this.flag=arguments[0];
for(var i=1;i<arguments.length;i++){
(this.flag==true)?alert('変数は' + arguments[i]):false;//ある別の処理
alert((this.funcs[i-1])(arguments[i]));
}
return this;}
function hoo(){
alert('trueだと');
new deb(true,2,'ウホッ');
alert('falseだと');
new deb(false,5,'プッハー');
}
こういうことか?
>>707 ありがトン。
関数の呼び出しの履歴が欲しかったので
タイミングは「関数が呼ばれた時」。
イメージとしてはこんな感じですた。
var test1 = function (a, b, c) { alert(a + "," + b + "," + c); }
var test2 = function (a, b) { alert(a + ":" + b); }
Function.prototype.call = function () {
alert("キター");
var arr = new Array;
for (var i=1; i<arguments.length; i++) arr.push(arguments[i]);
this.apply(this, arr);
}
test1.call(this,1,2,3);
test2.call(this,4,5);
でもこれはcallで呼ばないとだめだし、やっぱ無理かと。
710 :
Name_Not_Found :2005/11/29(火) 00:41:53 ID:85aCIdbA
jsファイルから別のjsファイルを読み込むことは可能なんでしょうか? C言語のincludeみたいに。 初歩的な質問かもしれませんがよろしくおねがいします。
>>710 言語仕様には実装されていないので環境によってできたりできなかったりする。
現行 Web ブラウザ上での動作を前提にすれば Dojo や JSON の実装もある。
一般的には src を指定した script 要素を使ったり、
ソースを XMLHttpRequest で持ってきて eval などの方法が使われる。
>>710 過去スレ読めば聞くまでもないことだ。
>>1 が読めない奴は来るな。
>>709 関数名を指定していいのならこういうんでどうかね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div><script type="text/javascript">
function comb(n, r) {
if(r == 0 || r == n) return 1; else return comb(n-1,r)+comb(n-1,r-1);
}
var ind = '', rec = [];
function trace(fname) {
window[fname] = function(f,n) {
return function() {
ind += '>'; var str = ind + n;
for(var i = 0; i < arguments.length; ++i) str += ' ' + arguments[i];
rec.push(str); var ret = f.apply(this, arguments);
rec.push(str + ' return: ' + ret); ind = ind.substring(1); return ret;
}; }(window[fname], fname);
}
trace('comb');
document.writeln(comb(4,2) + '<br>');
for(var i in rec) document.writeln(rec[i] + '<br>');
</script></div>
</body></html>
>>3 のFAQ10だけど
script要素を動的に生成してsrc書き換えれば
ページの読み込み後任意のタイミングで
別ドメインのスクリプトファイル取り込めるわけだけど
なんかそういうこと追記してもいいのでは?
>>713 別鯖でもいいというのは初耳だなあ。ぜひそうしよう。
716 :
713 :2005/11/29(火) 09:47:10 ID:???
718 :
713 :2005/11/29(火) 10:13:56 ID:???
>>718 君のページ、読み込めたことが確認できないと思うのだが。
で、自分で作って確認したら出来たよ。
でも、データを取り寄せるには、スクリプトの中にデータを返す関数を用意すれば良いわけ?
721 :
713 :2005/11/29(火) 11:09:17 ID:???
>>719 >君のページ、読み込めたことが確認できないと思うのだが。
え?なんかミスってます?
>でも、データを取り寄せるには、スクリプトの中にデータを返す関数を用意すれば良いわけ?
htmlファイル内に静的に書いておく
<script language="text/javascript" src="hoge.js"></script>
を任意のタイミングで書き込むだけなので
スクリプトに何をやらせるかというのは通常と変わりません。
722 :
713 :2005/11/29(火) 11:13:30 ID:???
そのサイトのブックマークレット bbspinkでは駄目ぽ
725 :
713 :2005/11/29(火) 12:50:45 ID:???
728 :
Name_Not_Found :2005/11/29(火) 20:52:42 ID:tfdF5Szi
>>713 language="text/javascript"ってのがあるんですか?
ちょっと、向学のためにですが。
729 :
Name_Not_Found :2005/11/29(火) 20:53:07 ID:tfdF5Szi
>>713 language="text/javascript"ってのがあるんですか?
ちょっと、向学のためにですが。
730 :
713 :2005/11/29(火) 21:32:41 ID:???
>>713 jsLoad の最後の行、
document.appendChild(e);
じゃなくて
document.getElementsByTagName("head")[0].appendChild(e);
とかでは?
>>714-715 WWWを見始めて一週間くらいか?
とりあえずあと5年は書き込むなヴォケ。
おまえらの見てる広告を読み込むスクリプトの src や、画像の src や、
……列挙するのもアホらしい。
733 :
713 :2005/11/29(火) 23:50:57 ID:???
>>731 IEで動いたのでとりあえず使っていましたがGeckoエンジンだと反応しませんね。
document.appendChild(e);
の場合どこに追加されてるんでしょう?
これ使わせてもらいます。
document.getElementsByTagName("head")[0].appendChild(e);
734 :
Name_Not_Found :2005/11/30(水) 00:08:48 ID:wWQp7Xzo
onMouseOverでステータスバーを変えたいのですがアンカーからだと <a onMouseOver="window.status='';return true;" でうまくいくと思うんですけどイメージマップで <area onMouseOver="window.status='';return true;" としても全く変化無くリンク先のURLがステータスバーに表示されるだけなんですがこのときはどうしたらよいのか教えていただけないでしょうか
質問ですが、PDAでWIndowsMobile2003対応のJAVAプラグインを探しているのですが、 何を探したらいいのかわかりません。 ブラウザはPDA用のIEです。Operaも検討したのですが、SmartPhoneにしか対応していないので使えません。 どなたかご存知の方いましたら教えてください。
>>734 > <a onMouseOver="window.status='';return true;"
> でうまくいくと思うんですけどイメージマップで
うまくいくってこれで何が表示されてるの?
>>733 =
>>731 > document.appendChild(e);
> の場合どこに追加されてるんでしょう?
↑の appendChild() だと…
<!DOCTYPE 〜>
<html>
<head>〜</head>
<body>〜</body>
</html>
<script>〜</script>
html 要素の次に追加する意味になるようだよ。
で、Gecko では実行時エラーになる。
>>737 あーそうなっちゃいますよね。
それで動くIEが逆に問題ですね
740 :
734 :2005/11/30(水) 01:37:31 ID:wWQp7Xzo
>>736 なんでもいいです。この場合だと何も表示されないということになります
742 :
Name_Not_Found :2005/11/30(水) 13:27:50 ID:6b6DXvLT
埼玉県の4都市をランダムに表示させようとして↓のようなのを作ったのですが、 var SAITAMA = new Array("さいたま","くまがや","かわごえ","ちちぶ"); //配列作成 //配列の保存 function save(){ widget.setPreferenceForKey( SAITAMA.join("\n"), "AA" ); } //保存された配列からSAITAMAを作る function load(){ SAITAMA = widget.preferenceForKey("AA").split("\n"); } document.write(SAITAMA + '<BR>'); 以下のように表示されてしまいます。 さいたま,くまがや,かわごえ,ちちぶ save と loadの処理をしていないためこのようになってしまうのだと思いますが、 この処理を生かすためにはどのように書き換えればよいのでしょうか? 全く初心者なのでつまずいています。
744 :
742 :2005/11/30(水) 14:31:57 ID:6b6DXvLT
>>743 紛らわしくてすいません。スレ違いじゃないです。JavaScriptです。
埼玉県の4都市をランダムに表示させようとして↓のようなのを作ったのですが、
<SCRIPT language="JavaScript">
<!--
var SAITAMA = new Array("さいたま","くまがや","かわごえ","ちちぶ"); //配列作成
//配列の保存
function save(){
widget.setPreferenceForKey( SAITAMA.join("\n"), "AA" );
}
//保存された配列からSAITAMAを作る
function load(){
SAITAMA = widget.preferenceForKey("AA").split("\n");
}
document.write(SAITAMA + '<BR>');
//-->
</SCRIPT>
以下のように表示されてしまいます。
さいたま,くまがや,かわごえ,ちちぶ
save と loadの処理をしていないためこのようになってしまうのだと思いますが、
この処理を生かすためにはどのように書き換えればよいのでしょうか?
JavaScriptで書かれてるけど、APIがJavaScript標準のやつじゃないでしょ?
でWidgetだか知らんがwidget.hoge_mothodの使い方はたぶん
>>743 で聞いた方がいいよ。
JavaScriptで一般的にランダム表示なら既出なんで
>>1 の過去スレ検索か
ググっても腐るほど出ると思う。
付随してwidgetとやらを使ってMac独自に色々したいなら
>>743 で
746 :
742 :2005/11/30(水) 14:50:24 ID:???
了解。ありがとうございました 退散しますー
>>747 日にちを登録つまり情報を保存するにはサーバ側のプログラムが
必要。で、サーバ側のプログラムがもうあるのなら相談に乗るが、
ないのならまずWebProg板なりへ行ってそっちを解決してこい。
>>748 ありがとうございます
調べてみましたけどなさそうです(;´Д`)
けどblogの記事を保存できるなら どうにかすれば日程登録の保存出来そうなものですよね ちょっとそこらへんググってみます
>>750 > けどblogの記事を保存できるなら
どこに保存するのか、頭ひねって考えてみれ。
>>747 おもしろいネタなのでサンプル作ってみようかな ?
で, どんなデータを使うのかな ?
たとえば weblog で良くある, 日付をクリックするとジャンプするタイプ ?
それともリンク先のようなタイプ ?
画像をあらかじめ読み込んでキャッシュして、マウスオーバーで 画像を切り替えるにはどうすればいいですか? JavaScript: mona = new Image(); mona.src = "mona.gif"; giko = new Image(); giko.src = "giko.gif"; function toGiko() { document.myimage.src = giko.src; } function toMona() { document.myimage.src = mona.src; } HTML: <img name="myimage" src="mona.gif" onMouseOver="toGiko()" onMouseOut="toMona()" /> よくこういうパターンが紹介されていますが、実際にやってみると、 キャッシュされておらず、マウスオーバー・マウスアウトのたびに 画像をサーバから取っています(IE6)。
>>755 > 画像をサーバから取っています(IE6)。
試してみたが、再現しない。
Apacheなら、mod_expires関連のディレクティヴ設定、IISならCache-Control設定
の確認くらいはやったんだろうな?
やってから、その画像のHTTPレスポンスヘッダ貼れ、/php/板のどこかに。
それでも解決しないまたはJSの問題だということなら、再質問しろ。
758 :
Name_Not_Found :2005/12/01(木) 14:37:47 ID:FQDr1fSV
質問です。 xの中身は数字であることしか分からないものとして goukei=suuji1+suuji2+suuji3+suuji4.....+suujix; という処理をしたいんですがどうすれば良いのでしょうか。 過去ログを見ましたがさっぱり分からず FAQのQ6辺りかなーと思うもプログラムは組めず・・・。 どなたかご教授お願いします。
>>758 まさにFAQ
>>3 のQ6/A6だな。そこまで見つけて組めないというのは
プログラミングの勉強が皆無だからだろ。本などで勉強するしかない。
(ループの書き方だとか、そんな基本はこのスレでは教えてもらえない。)
なるほど。全く思いつきませんでした。 ヒントありがとうございます。
>>759 なんだその意味不明なアドバイスは。何の役にも立たん。
763 :
Name_Not_Found :2005/12/01(木) 16:26:16 ID:8aUJ16RA
台形公式による円周率の近似値の計算で、分割数は1000回のプログラムなんですが、 中の計算がどうしてもできません。 var m=1000,y=1,x,s,p=0,pi;n=1/m; for(i=0;i<=m;i++){ x=Math.sqrt(1-Math.pow(m,2)); s=(x+Math.sqrt(y))*n/2; y=x;p++; pi=p*4/i;} という風にやっているんですが、どこが違うんでしょうか。 また、再帰関数"fib"を定義して、フィボナッチ級数の計算及び黄金比率の近似値の計算で20番目までをやるんですが、こちらもできません。 function fib(){ if(n=0){return 1;} else(n>=1){n*(n-1)} } for(i=0;i<20;i++){document.write(fact(i))} とやっています。計算はこの後に入れているのですが(計算はできてる)、上手く出来ません。 これらは一体どうすればいいのでしょうか?
>>755 web鯖のアクセスログを tail -f しながら(JavaScriptは自前の別のものだけど)
マウスオーバーとアウトを繰り返してみると、アクセスがあったりなかったりするね。
ただ、細い回線でどでかい画像でやってもサクサク切り替わるところをみると、
プリロードしたキャッシュの画像を見ているのだろうと思うよ。
まあ、3年以上前の古いブラウザなんだから、そんくらいは目をつぶるという方法で
対処してください。
>>752 JS は read only に作られているのだ.
だから, '保存' と言う言葉が出てくること自体がおかしい.
ただし, weblog ならば抜け道もなくはない.
簡単に言うと data を CSS で見えないように投稿して
innerHTML で読み取って eval() してやれば良い.
一応, サンプルは作ってみたけど,
アンタが考えている ものとは おそらく程遠いことだろう:
www17.ocn.ne.jp/~addict/samples/calendar/calendar.html
これ以上の対応は ここの常連さんのひんしゅくを買うので
必要なら '手取り足取り' にでも移動してくれ〜.
: JS は read only Ajaxのお好きなnullサマとも思えないお言葉。
>>767 Ajax で server にデータを送れるの ?
聞くは一時の恥だから聞いておく〜.
(そんなことが可能だとして security 上の問題は起こらないのだろうか ?)
でも "Ajax が好き" と言うのはチト違う.
面倒な問題が多いので現状では使いずらいと思っているんだ.
(せめて記述の統一をしてくれ〜)
POST出来るんじゃないの?
>>769 multi-column うざ〜.
1. menu の下のほうはガラ隙.
2. 文字が小さくなるのはお約束 ?
いくら良い情報を提供してくれていても読む気にならね〜.
>>768 知識がないのは文面からよくわかる
security上の問題はケース倍ケース
>>753 とりあえず、WinIE オンリーなら出来る。
http://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%C6%A5%AF%A5%CB%A5%C3%A5%AF%5D%5D#content_1_10 あたりを良く読んで、.nodeTypeValue に .responseBody を入れる。
.text で Shift_JIS のバイト列を得る。
http://charset.info/sjis-2004-std.txt を使わせてもらって、変換表を作る。
var utos = { ... , "82a0": "\u3042", ... }
var utoS = { ... , "82A0": "\u3042", ... }
みたいに大文字小文字で分けておいた方がベター。おそらく前者しか使わないが。
var t = (IDOMNode#text);
var p = /(.)./g; var a; var result = [];
if (/[a-f]/ .test(t)) {
while (a = p.exec(t)) {
if (/[89e]/ .test(a[1])) result[result.length] = utos[a[0] + p.exec(t)[0]];
else result[result.length] = utos[a[0]];
}
} else { ... }
で、Shift_JIS - Unicode 変換の出来上がり。...innerHTML = result.join("") で完了。
ただし、
>>753 の数万文字だと、実用レベルの速度には達しない。
先に 1バイトずつ区切って配列にした方が (exec使わない方が) 速いかもしれない。
774 :
773 :2005/12/01(木) 19:41:11 ID:???
誤 nodeTypeValue 正 nodeTypedValue
>>771 ”ふつう”のブラウザならふつうに見える。
開発・閲覧環境を整えるのも開発者のすべき努力だよ。
776 :
753 :2005/12/01(木) 22:10:07 ID:???
>>776 Content-type ヘッダというのは本当にHTTP通信に出て来る
ヘッダのことでしょ。サーバの設定によって送出させるという。
となるともはや本スレと無関係だけどね。
779 :
tom :2005/12/02(金) 20:47:04 ID:ooRWCBBT
http://akkie009.hp.infoseek.co.jp/scroll.html のようにCSSでボックスをつくり、その中のテキストが下から上へ
流れていくものを作りたいのですが、どうすればいいでしょうか?
詳しく書くと下記のことをしたいです。
・ページを読み込んだ時点から自動でテキストが下から上へのスクロールを開始し、永久に繰り返す。
・スクロールするテキストの色を変えたりできるようにしたいのでテキストエリアは使わない。
・スクロールの早さを調節できる。
・HTML の MARQUEE タグは使わない。
また、XHTMLファイル内で使うつもりです。よろしくお願いします。
>>779 内容としては簡単。
ただ、ここは丸投げスレではない。
>>779 ま、ヒントとしては、そのテキストを入れるレイヤーの
位置(style.top)を一定時間間隔で変更するんでしょうね。
>>781 質問は読んでないけど、そのヒントで何を質問しているか一発でわかったwww
スクロールを禁止する方法はありませんか?
784 :
783 :2005/12/03(土) 10:23:59 ID:???
すんません自己解決しました。 document.body.style.overflow='hidden'; こんだけでよかったんですね orz
>>779-782 作ってみた。ただ、スクロールバーと併用するんだとよく分からない。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
#d0 { width: 200px; height: 100px; overflow: hidden; position: absolute }
#d1 { width: 400px; height: 400px; position: relative }
</style>
<script type="text/javascript">
var e, pos = 0;
function init() { e = document.getElementById('d1'); setInterval(step, 50); }
function step() { e.style.top = (--pos)+'px'; }
</script>
</head><body onload="init()">
<div id="d0"><div id="d1">
a<br>b<br>c<br>d<br>e<br>f<br>g<br>h<br>i<br>j<br>k<br>l<br>m<br>
a<br>b<br>c<br>d<br>e<br>f<br>g<br>h<br>i<br>j<br>k<br>l<br>m<br>
</div></div></body></html>
786 :
tom :2005/12/03(土) 13:52:20 ID:???
>>785 ありがとうございます。
IE6、Firefox 1.5、Opera 8.5、Netscape 7.1(いづれも、Windows XP SP2上で動作)
にて、きちんと動くことを確認しました。
あるキーの配列のみを未定義にする事は出来ないでしょうか? たとえば、以下のような配列があったとして、 hoge['a'] = 1; hoge['b'] = 2; hoge['c'] = 3; キーがbのものを配列から存在自体削除したいのです。 hoge['a'] = 1; hoge['c'] = 3; unset(hoge['b'])とか、hoge.unset('b') みたいな感じで出来ないものでしょうか。 今はforで回して新しい配列に要らないもの以外を格納すると言う感じでやっているんですが、 一発で出来る関数あったら教えてください。
>>787 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.4.1
>>787 JavaScript言語組み込みの演算子に何があるかくらい勉強しようや。
'(--pos)' ってなんなのかしら ? おせ〜て _(._.)_ ペコリ
>>790 C言語に由来するデクリメント演算子だけど〜。
この場合「(pos -= 1)」と同じね。
793 :
Name_Not_Found :2005/12/04(日) 07:10:04 ID:y2OsxTVK
float:leftで2列カラムを作るとき必須だな。 floatしたらwidthを指定しなければいけない。 左にボーダー1pxのNAVIカラムがある。 さて残りのwidthはどうする!?
ハア?
Ajaxとかで同じ鯖からデーターもってくる方法は盛んに紹介されてるけど どうにかして他のドメインからデーターもってくる方法はないものなの? あるサーバーに置いたCGIの出力結果をJavaScriptでもってきて、任意のページに 貼り付けるとかそういう事がやりたいんだけど adsenseはiframeで実現しているみたいだけど複雑すぎてよく分からん。。。
>>796 サンプル希望.
(僕が実験したときはうまく行かなかった
たぶん, なにか考え方が間違っていたのだろけど...)
ServerA#ScriptA が ServerB#ScriptB の <script src=".....js"> の生成を行う ServerB#ScriptB は ServerA に取り込まれる => ServerA#ScriptB が生成される ServerA のスクリプトは ServerB と XMLHttpRequest で通信出来ない => ServerA#ScriptB は ServerB と XMLHttpRequest で通信出来ない つまり動的に <script src="....js"> 生成しても ドメインが違えばやはりデータは持ってこれない。 間に PHP やら Perl やらを噛ませないとドメイン間データ通信は辛い。 iframe に隠して読むならできるかもしれない。
>>795 そのCGIに手を入れられるのなら、HTMLを返すのではなく
(たとえば配列に返すデータを入れるような)JSを返すように
直してそれを<script src=...>で取り込めばいいんじゃないの。
>>800 <img src> と同じ。埋め込める。
じゃあ、埋め込まれたスクリプトはどのURIを基準にするんだっつう話。
<script src> が書いてあるHTMLのURIを基準にする。
alert(location.href) と書かれたJSを呼べば、呼ばれた先によって結果が変わるということ。
だから、JSからデータを呼ぶなら、それはHTMLと同じホストになければならないし、
単純に
>>801 見たいな解決策を取れば良い。まあ、普通は、串を通すわな。
804 :
713 :2005/12/04(日) 18:32:43 ID:???
>>795 CGIでの出力結果をjavascriptで読める形式にすれば
何も問題なくできると思いますよ。
そもそも他所のデータ読めたら安全性に問題があるから遅かれ早かれ修正されるでしょ あ、でもMSなら仕様と言い張るかww
806 :
795 :2005/12/04(日) 18:46:33 ID:???
みんな本当にありがとう 799の出してくれた奴を参考に色々やってみるよ
>>776 > 非xmlテキスト(といっていいのか)でも charset指定とか ありうるのでしょうか。
恐らく、XMLHttpRequest#overrideMimeType("Content-Type", "text/plain; charset=Shift_JIS")
の話だろうと想像するが、無意味、無理。
また、"#default#download" やってるが、逆に、UTF-8を読めないだろ。
文字化けと言っても、ありのままが化けてるわけじゃなく、
多対1の関係で化けてるから手の施しようが無い。
だから、根本的な解決法は、ありのままのデータである
IXMLHTTPRequest#responseBody を変換するしかないわけだ。
>>805 修正されるって、そもそも、読めないだろ。何を言ってんだか。
単に、<script src> で読むぶんにはスキームが同じなら何処からでも読めるというだけで。
そして、これが変更されると妄想するおかしな人は世界中で
>>805 だけだろう。
iframeでajaxってすごいな。 解読する価値ありそうね。
810 :
Name_Not_Found :2005/12/04(日) 20:18:45 ID:ac3Z/EbF
YYYY−MM−DDの日付を入れたとき その日付の五年度先の3月31日の曜日を取得したいのですが どうすればいいのでしょうか? 例) 2006-04-01→2011-03-31→木曜日を取得 2006-03-31→2010-03-31→水曜日を取得
812 :
Name_Not_Found :2005/12/04(日) 21:01:44 ID:ac3Z/EbF
DateオブジェクトのgetYearだとその年度ではなく その年しか取れないのでは?
年度って何? //dateobj = new Date(); //dateobj.setFullYear(dateobj.getFullYear()+5); //dateobj.setMonth(2); //dateobj.setDate(31); //alert(dateobj.getDay());
>>813 2006年3月31日→2005年度
2006年4月01日→2006年度
>>812 そんなのなんとでもなるだろ
やる気のないやつは(・∀・)カエレ!
816 :
Name_Not_Found :2005/12/04(日) 22:05:06 ID:H1mCir/6
<html lang="ja">
<head>
<script language="javascript"> <!--
function URLCheck() {
alert (parent.frame1.location.href);
}
// -->
</script>
</head>
<body>
<iframe src="
http://www.google.co.jp/ " name="frame1" width="100%" height="200"></iframe>
<input type="button" value="Check" onClick="URLCheck();">
</body>
</html>
というHTMLファイルをローカルに作成した時に
alert (parent.frame1.location.href);
で『書き込みできません』というエラーが表示され、URLを確認できません。
どのようにしたら外部のHPをフレーム内に表示した時にURLを取得できるのでしょうか?
>>816 絶対に取得できないから安心しろ。FAQ
>>3 のQ1/A1は読んだよな。
申し訳ない。 Q1ですね。 ありがとうございます。
event.ctrlKeyってマックでも使えますか?
>>785 正直, 考え方のスマートさに感動いたしました.
考え方をパクってウチのサイトのサンプルに加えたいのですが...
(もちろん, 丸ごとパクルことはいたしません)
>>821 正直, 考え方のショボさに感動いたしました.
ネタをパクってFireFoxでもIEでも動作するサイトを作りたいのですが…
(もちろん, ソースはコピーすることはいたしません)
823 :
Name_Not_Found :2005/12/06(火) 14:04:21 ID:YsS38fVH
指定拡張子ファイルのみの表示をさせたいのですが、どうすればいいでしょうか?
くわしく
ある数のポイントを 自由に振り分けるようなものは、 可能でしょうか? <select name="a"> <option>0</opition> <option>1</opition> <option>2</opition> <option>3</opition></select> <select name="a"> <option>0</opition> <option>1</opition> <option>2</opition> <option>3</opition></select> のようにして、最大が3ポイントで、 aで選んだ数字を、3からひいた数までしか、 bには表示させないと言ったような感じです。
>>825 何を言っているのか理解に苦しむが、selectの選択肢を
増やしたり削ったりするのはどうにでもできるよ。
その方法は過去ログ全集に山盛りあるんで自分で探せボケ。
827 :
Name_Not_Found :2005/12/06(火) 23:28:19 ID:AmSoyd6o
すみません。どなたか教えてください。 form内に入力項目(inputやselectなど混在)が50項目以上あるのですが、 いずれかの値が変更されたらメッセージを表示したいんです。 やっぱりそれぞれの項目にonChangeって書かなくてはならないでしょうか? なにかまとめて書く方法、 またはまとめてイベントを拾う方法なんてないですか?
828 :
Name_Not_Found :2005/12/06(火) 23:40:58 ID:C0JsDcNp
・2〜1000までの素数のみを表示するプログラム ・100000までの素数の個数を求めるプログラム ・2つの整数の最大公約数を求めるプログラム 非実用的でいやなのですが、どなたか教えてください
「エラトステネスの呪い」でぐぐれ
>>828 function gcd(x,y) { if(x==y) return x; else return (x>y)?gcd(x-y,y):gcd(x,y-x); }
説明はしないしこれを宿題の回答にして説明しないとかなり問題あると思うけどね。
>>827 その変更を監視するものが「どれとどれか」はどういう範囲で決まっているの。
あるフォームにあるすべての部品だったら
var a = document.forms.フォーム名.elements;
for(var i = 0; i < a.length; ++i) a[i].onchange = function() { alert('?'); };
833 :
832 :2005/12/07(水) 01:51:31 ID:???
>>830 いや、ごめん。ググってみた。
あんた正しかった。
>>828 >・2〜1000までの素数のみを表示するプログラム
>・100000までの素数の個数を求めるプログラム
学習目的なら、ふつう、2番目は、1 000 000 (百万) にするはずだが。
何でjsは宿題に多いんだろう…。
宿題なら、最大公約数は再帰で書くと喜ばれそうだ
末尾再帰に展開するともっと喜ばれるよ
Javascriptの記述で \x3C\x53\x43\x52\x49\x50\x54\x20\〜(続く) というものがあったのですが、この書式はどうやってASCIIにデコードしたらいいのでしょうか? 書式の名前だけでも分かる方は教えて下さい。お願いします。
16進数 変換 あたりでぐぐれば出てくるんじゃない
<html> <head> <title>javascriptdialog</title> <!-- スクリプト --> <SCRIPT LANGUAGE="JavaScript"> <!-- function dialogdisp(){ var fileRef; fileRef = filePutDialog("Select File","Sample.txt","TEXT"); document.testform.filename.value = fileRef; } //--> </SCRIPT> </head> <body> <h1>dialog</h1> <form name="testform"> <input type="text" name="filename" size="300px"> <IMG src="img/outlist.png" value="dialog" onclick="javascript:dialogdisp();"> </form> </body> </html>
イメージボタンをクリックしてファイル選択のdialogを表示し
選択したファイル名称をテキストボックスにセットしたいです。
840のコードだとオブジェクトを指定してくださいというエラーが出ます
下のサイトの■ダイアログ関連を参考にしたんですが
その中でも下3つのファイル・フォルダ関係の
ダイアログ表示が同じエラーが出ます。
どこか間違ってますでしょうか?教えてください。
ttp://www.openspc2.org/reibun/AfterEffects6.5/
>>841 filePutDialog() ってのは
AfterEffects 内部で使える独自に拡張された関数ではないかと思うのだけれど。
>>840-842 そもそも<input type="file">のファイル名をJSからセット
することは「ゼッタイに」できない。できたらどんな怖いこと
が可能になるか考えてみれ。レジストリファイルなど、パスが
決め打ちで分かる重要なファイルが吸い上げ放題になるんだぞ。
あ き ら め れ
a.html にてフレームセットで b.html と c.html を指定 (a.html と b.htmlのドメインは同じ) b.html に<input type="button" />でボタンを表示して それをクリックしたとき aのフレームの幅を変更したいんですが a.html を操作する方法と、フレームの幅を変更する方法を 教えてください documentだと、a.html を操作できるはずないですよね。 window しか思いつかないんですけど それ以上思いつきませんでした。
845 :
844 :2005/12/08(木) 09:52:29 ID:???
ダメポと思ってたんですけど もっと調べてみたらparentでできると分かりました フレームの幅も getElementById("").cols で指定して変更できました スレ汚しすいませぬ(´・ω・`)
すいません、相談させてください。 javascriptでテーブルに行を追加する処理を作成しています。 で、行追加時にセル結合をしたい部分があり、colspan属性をTDに追加しようとしているのですが、 うまくいきません。どうすればよいでしょうか。 作ってみた関数は以下の通りです。 function AddTr() { var tagTr, nLoop, tagTd; tagTr = document.createElement("TR"); var oTable = document.getElementById("tblSample"); var oBody = oTable.getElementsByTagName("tbody")[0]; oBody.appendChild(tagTr); for (var nLoop = 0; nLoop < 4; nLoop++) { if(nLoop == 2){ tagTd = document.createElement("TD"); tagTd.setAttribute("colspan","2"); ←colspanを設定してみているが上手くいかず } tagTd = document.createElement("TD"); tagTr.appendChild(tagTd); tagTd.innerText="追加されました" + nLoop; } }
847 :
846 :2005/12/08(木) 11:17:36 ID:???
上の関数document.createElement("TD")の位置が変でした。 正しく?はこうでした。すいません。 for (var nLoop = 0; nLoop < oBody.rows[0].cells.length; nLoop++) { tagTd = document.createElement("TD"); if(nLoop == 2){ tagTd.setAttribute("colspan","2"); } tagTr.appendChild(tagTd); tagTd.innerText="追加されました" + nLoop; }
>>847 function AddTr(){
var tagTr = document.createElement("TR");
var tagTd = document.createElement("TD");
var oTable = document.getElementById("tblSample");
var oBody = oTable.getElementsByTagName("tbody")[0];
oBody.appendChild(tagTr);
var addTd = tagTr.appendChild(tagTd);
addTd.setAttribute("colspan","2");
addTd.innerHTML = "追加されました";
}
こういう事?
849 :
848 :2005/12/08(木) 13:50:15 ID:???
>>847 >>848 はなしで
for (var nLoop = 0; nLoop < oBody.rows[0].cells.length-1; nLoop++)
こういう事か?
>>846-847 insertRow, insertCell を使えば、IE でも上手く結合される。
//
>>849 の指摘と重複するが、最初の <tr> に colspan が無いなら、nLoop の範囲は oBody.rows[0].cells.length - 1 になる。
// ただし、この最初の <tr> も colspan="2" であるなら、問題無い。
//// この最初の <tr> も colspan="2" である場合には、そもそも、これを cloneNode して
//// セルの内容を置換した方が手っ取り早いような気がするが。
851 :
848 :2005/12/08(木) 14:13:36 ID:???
>>850 >insertRow, insertCell
感動した!!こんなのあるんだ(・∀・)イイ!!
852 :
846 :2005/12/08(木) 15:53:29 ID:???
>>848 さん
>>850 さん
アドバイスありがとうございます。
テーブル(tbody)の構成としては
<TR>
<TD>1</TD><TD>2</TD><TD colspan="2">3</TD><TD>5</TD>
</TR>
<TR>
<TD>6</TD><TD>7</TD><TD>8</TD><TD>9</TD><TD>10</TD>
</TR>
といった形で3列目と4列目を結合しようとしています。
最終的には
<TR>
<TD rowspan="2">1</TD><TD>2</TD><TD colspan="2">3</TD><TD>5</TD>
</TR>
<TR>
<TD>7</TD><TD>8</TD><TD>9</TD><TD>10</TD>
</TR>
といった形で先頭の列については2行結合した形になるんですが、
そもそもcolspanの設定が上手くいっていなかったので、
rowspanのほうは置いといて考えていました。
とりあえずinsertRow, insertCellでやれるか頑張ってみます。
何か他にもアドバイスがあれば宜しくお願いします。
(書き込みの改行制限でエラーになったので↑のソースが見にくくてすいません)
>>843 type="file" ではないみたいだよ。
まあ質問者が何をしたいのかもよくわからんけど。
>>840 とりあえず選択されたファイルはこっそりサーバに投げちゃう。
で、サーバでそのファイル名を生成しておいて、
ajaxでこっそりファイル名を取りに行く、ってのはどうだろう。
まわりくどい?
855 :
Name_Not_Found :2005/12/08(木) 21:12:31 ID:tdDni8gr
正規表現の質問です、お願いします <p>hoge</p> <p>fuga</p> <p>hage</p> <p>mage</p> というテキストから hoge,fuga,hage,mage と配列を得たいんですが タグ付きだと1発で抜けるのですが中身だけを一回で抜けません text.match(/<p>(.*)<\/p>/ig); alert(RegExp.$1); としても当たり前ですが最後のマッチした分が表示されてしまいます タグ付きで抜き出したものについてさらにmatchかければ出来るんですが、効率が悪いので 上手い方法あったら教えてください
一旦タグを取り除いてから split したらどうだろう。
>>856 情報が小出しになってすみません
他のタグやテキストが混在してる状況で<p>〜</p>だけ取得したいのでした。
タグ以外で内容を絞るのは厳しい状況です。
>>852 俺が昔このスレで同じことで苦しんだ覚えがある。結構粘着して
そこそこのソースになったと思うので、過去スレ全集
>>1 で調べてミレ
>>855 gつけずに外でループさせれば?
var list=new Array();
var cpy_text=text;
while(cpy_text.match(/<p>(.*)<\/p>/i)){
list.push(RegExp.$1);
cpy_text=cpy_text.substring(RegExp.lastIndex,cpy_text.length-1);
}
動かしてないんで慎重にw
正規表現の達人がぐうの音のでない書き方を指南するに期待。
>>856 俺ならこうする
そのテキストの一番最初のタグから一番最後のタグの間の文字を取り出して、終了タグと開始タグでsplit
str.match(/<p>(.*)<\/p>/)[1].split("</p> <p>")
>>859 何故か最後のタグの中が取得できませんでしたが
なんとなくやり方はわかりました、substringなんて使った事無かったので勉強になりました
どうもありがとうございました。
>>860 上手い具合に抜き出せました、split使えばよかったんですね。
調節して使っていきたいと思います
どうもありがとうございました。
>>855 書いてみました
text の走査をワンパスで完了すれば速くなるかなと思い、* の直後に ? を付け
最短一致として検索を実行し、マッチするごとに配列要素に格納してます。
また、RegularExpressionオブジェクトを内部形式にコンパイルすることで
実行を高速化(←ほんとか?)します。
...でも、compile は ECMAScript非準拠!非推奨!効果無しorz(←をい!)
//text 内の <p> と </p> に挟まれた文字列を各々配列 a の要素に格納する
//但し、閉じない p タグの混在や p タグの入れ子は考慮しない
var a = new Array();
var r = new RegExp().compile(/<p>(.*?)<\/p>/ig); //準拠 var r=/<p>(.*?)<\/p>/ig;
while(r.exec(text)) a.push(RegExp.$1);
>>863 これで本当にOK? <p>aaa</p><p>bbb</p>で$1がaaa</p><p>bbbにならない?
865 :
844 :2005/12/09(金) 08:46:44 ID:???
>>864 やってみればいいじゃん
*?は最小マッチでそ
>>855-864 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(pat) {
var a = new Array();
document.getElementById('d0').innerHTML.replace(pat,
function(x, y) { a.push(y); });
alert(a.join('\r\n'));
}
</script>
</head><body onload="init()">
<div id="d0">aaa<p>bbb</p>ccc<p>ddd<b>eee</b>ffff</p>ggg</div>
<div>
<button onclick="test(/<p>(.*)<\/p>/g)">test1</button>
<button onclick="test(/<p>([^<]*)<\/p>/g)">test2</button>
<button onclick="test(/<p>((?:(?!<\/p).)+)<\/p>/g)">test3</button>
</div>
</body></html>
そうか、最小マッチというのがあったんだ。
>>855 function pGet(text){
var strs = text.match(/<p>.*?<\/p>/gi);
strs = strs.join().replace(/<.*?>/gi,"").split(",");
return strs;
}
っていうか 思えば、var list=document.getElementsByTagName('p');な悪寒。 久し振りに皆さん燃えてますが・・・
870 :
868 :2005/12/09(金) 12:00:41 ID:???
JavaScriptの濃い話題ってどこでやればいいの?
873 :
Name_Not_Found :2005/12/09(金) 19:48:31 ID:jNYyE6Cz
質問です。
別フレームのURLを取得したいのですが、グローバルなURLが取得できません。
window.parent.frameb.location.href="
http://www.yahoo.co.jp ";
alert(window.parent.frameb.location.href);
ここのalertでエラーが出てしまいます。
同一サーバーの相対URLなら取得できるのですが・・・
874 :
871 :2005/12/09(金) 20:13:54 ID:???
>872 ありがと。JSANとかprototypeとかの話してるスレが良かったんだけど、ないのか
ここでやってもいいつか、たまにあるけどね。JSANて何。 JSONなら知ってるけど。
>>875 JSANというゴミ捨て場を知らないような門外漢は書き込むな。
でもいっかいも話題出たことないじゃん。誰か話題してみなよ。
879 :
873 :2005/12/09(金) 23:34:05 ID:???
URLという情報もダメなんですね・・・ ありがとうございました。
クッキーに(;´Д`)を使用した場合 これをjavascriptで取得することはできないんでしょうか?
881 :
840 :2005/12/09(金) 23:56:42 ID:???
>>841 なんか、そうっぽいですね。
他にも調べてみたけどWindowsのIE6以上でファイルダイアログを表示するjsって
ないんですかね?
>>843 >そもそも<input type="file">のファイル名をJSからセット
することは「ゼッタイに」できない。
jsからファイル名を指定したいんじゃなくてjsからファイル選択のダイアログを表示して
ファイル選択のダイアログからファイル名を指定したいんです。
言ってる事同じかな・・・?
だからレジストリが危険だのど〜だのは関係ないと思うんですけど・・・
>>853-854 結局やりたい事は<input type="file">と全く同じ。
ただ、フォームの参照ボタンをイメージボタンに変えたいだけなんです。
もうjsだと無理なんですかね?
>>880 クッキーに日本語裸で入れるの無理でしょ。サーバから
食べさすならUNICODEにしてからエンコードして入れる
>>881 type=fileじゃなくtype=textなのね、それならセットは
できるけど、JSからファイル/ディレクトリが触れない。
HTAやWSHにすればできるけど… そもそもtype=textだと
ファイルの内容は送信できないけどいいのね?
IE6 <INPUT type='file'>をclick()でダイアログ出るなプッ
>>882 うん。
<input type="text">と<IMG ・・・ onclick="javascript:sefileselectdialog();">が1ッコずつ。
javascriptからファイル選択ダイアログを呼び出し、ファイルを選択して、そのパスを<input type="text">
にセットしたいんです。
そうすればあとはなんとかなりそうだから。
>>881 > ただ、フォームの参照ボタンをイメージボタンに変えたいだけなんです。
そういうことなら「どうやってもできません」
click()便利だよな
テキストボックスじゃない普通のテキストをクリックで選択状態にすることは出来ますか?
focus()
>>888 へえ〜
面白いね
でもなかなか大変そうだ
893 :
Name_Not_Found :2005/12/11(日) 01:20:41 ID:bKkfRIQT
IME制御に関しての質問です。(IE6.0限定) CSSのスタイル指定でIMEのON/OFF等は出来ますが、 現在のIME(ON/OFF)は取得できませんか? また、JavaScriptで排他制御ってできますか? Javaで言うところのSynchronizedです。 JavaScript(JScript)のイベントモデルのドキュメントを教えていただける だけでもありがたいです。 宜しくお願いします。
↑インテリヤクザ
どうやらhtmlの仕様の問題のようなので、こっちのスレに来てみました <input type="text" name="title"> <input type="text" name="name"> <textarea name="content"></textarea> <!--↑こいつが問題、こいつがなきゃ、エンターやリターンでpost出来る--> <input type="submit" value="送信"> こんなフォームのときtextareaにフォーカスがあると、エンターやリターンでsubmit出来ない。 titleはその都度入力(デフォルト値は「無題」なんかにしておく) nameはクッキー喰わせておく。 contentは毎回当然違う内容。 こんな順番で入力するのが普通じゃん。 2chみたいにbbsとはいいつつ、かぎりなくチャットにちかい操作感で、textareaで文字を撃ち終わってエンター押したとこでpostさせたいんだけど、うまい方法はないですかね?
改行はどうやってするんだね?
>>895 IMEをそのように制御出来ますがと書いてあるだろ。
例えば、このテキストエリアにこうして書いてる時のIMEの状態を取得して、
必要ならその例文みたいな事をやるとか、そういうことだろ。
javascript:a=[];document.forms[0]['MESSAGE'].attachEvent('onkeydown',function(e){a[a.length]=e.keyCode;e.srcElement.form['FROM'].value=a.slice(-4)});eval()
をIE6でやってみれば分かるように、keyCodeを調べるだけでも分かりそうだわな。
でも、少なくとも、文字を入力するまでは取得は無理、直接調べる術は無い。
>>896 手がキーボードにあるのだから、
エンターの前にタブを押してフォーカス移動するくらい苦にならないはず。
>>897 C-q Enter とか、メジャーなエディタっぽくしておけば良い。
900 :
897 :2005/12/11(日) 23:27:52 ID:???
どのような人をターゲットにするのかわからないけれど 大抵の人には スタンダードなやり方の方が直感的にわかるからいいと思う。 タブインデックスを textarea の次に来るように設定するとか submit ボタンにアクセラレータキーを設定するとか。
>>897 改行はリターンで、エンターでポストが理想
全然解らなくなって来た。
標準では<input type="text">以外を含むフォームの場合はフォーカスを送信ボタンに映さない限りエンターかリターンでポストするのは出来ないんだっけ?
902 :
844 :2005/12/12(月) 08:29:40 ID:???
>>901 textareaにフォーカスがあればできんだろうが
903 :
Name_Not_Found :2005/12/12(月) 10:21:09 ID:RJ9QLwMK
DOMについて少し教えてください。 IEで<TR name="01" atai1="120" atai2="150" value=1200">の"atai"という様に、 勝手な名前のプロパティを付与してJavaScriptへ値の受け渡しをしていたのですが、 Geckoではこういう値の受け渡しはどの様にして実現するのでしょうか。
IEと同じ。普通に.getAttribute('atai1', 2)でいける
ちなみにOperaでは動かない<勝手なAttribute
906 :
903 :2005/12/12(月) 10:54:40 ID:???
>905 クソだな MochiKitのMochiTALうごかねーじゃん
>>907 俺に文句を言われても困るが、Operaを代弁すると、
標準仕様に載っていないアトリビュートをサポートするのは仕様違反である
ってところだろうか。意味に応じてIDやCLASSを利用して作るのがベスト
>908 スマン attributeに動作指定するform validatorとか作ってるんだけどかなり便利なのよ こんなん↓ <input type="text" name="q7" jtal:validator="match:.+@.+\..+;blank:false;error:メールアドレスを入力して下さい" /> IDは名前空間ぶち壊すからイヤ つーかCLASSから識別子取ってくるのもありか
つうか、IEでも document.expando = false したら、 要素オブジェクトに勝手にプロパティを追加できないし、 (IEでは同じことだが、) 要素オブジェクトに勝手に(HTMLとして見た時の)属性を追加できない。 要素オブジェクトのプロパティとして変数を保持するというのは、落とし穴以外の何物でもない。 例えば、お前等が必要以上に嫌うグローバル変数の方がまだましで、 グローバル変数なら、全体をfunction(){}で囲むとか、HTC化すれば、他所からアクセス不能になるが、 要素オブジェクトのプロパティにしてしまうと隠しようが無い。 だから、わざわざ、二重のデータ保持をするわけだ。 function MyDiv(div) {this.div = div; this.myProp = "hoge";} みたいに。決して、div.myProp とか、this.div.myProp とかやってはいけない(と俺は決めている)。
document.expando=false に対抗する為というわけではないが、何回か言ったように、#default#userData を使えよと。 document.expando = false; document.body.addBehavior("#default#userData"); document.body.setAttribute("foo", "hoge");// document.body.XMLDocument.documentElement.setAttribute として処理される。 alert(document.body.XMLDocument.xml);// <ROOTSTUB foo="hoge"/> 何回か言ったが、例えば、データを必要に応じてHTTP越しに取ってきたとして、それをuserDataに保存しておけば、 次からは、HTTP越しじゃなく、userDataから取得できる。 Cookieと違うのは、XMLで保存できる点。DOM、つうか、MSXMLなDOM で操作できる。
912 :
Name_Not_Found :2005/12/12(月) 20:43:13 ID:R0a2aW4D
JavaScriptを使い訪問したURLの履歴を取得して ブラウザなりファイルなりに出力したいのですが なにか良い策はないでしょうか? locationオブジェクトとhistoryオブジェクトの組み合わせで なんとかなりそうかなぁと思ってやってみたがムリポ
>>912 だから絶対にできないって。できたら洩れがそこら中のヤシらの
履歴データ収集してエロサイト見てる奴をゆすって大金持ち。
greasemonkeyって知ってるかい
916 :
Name_Not_Found :2005/12/13(火) 11:34:32 ID:6zGsaxmH
javascriptでマインスイーパー作ってるんだけど マスを押した時に、周りの空いてるマスを全部空けるには どう書けばいいんだろう?
917 :
Name_Not_Found :2005/12/13(火) 11:44:00 ID:kPoHsz2T
どうって、周りの空いているマスを全部空けるとしか 言いようがないがな。それがかけないならプログラミング の修行をしてもらうしかないような。
答える気のない奴はすっこめ。
すっこめ君答えてあげてよ。
>>916 function masu(){ // マスのオブジェクト
this.untarakantara;
this.open = function(){
// マスを開くメソッド
}
this.tonarinomasu = function(){
// 隣のマスを返すメソ(略
}
this.is_bomb = function(){
// 爆弾かそうでないかを返すメ(略
}
}
var obj = 特定のマス;
obj.onclick = function(){
if(obj.is_bomb == false){
var tmp = obj.tonarinomasu;
for(var i=0 ; i<tmp ; i++){
tmp[i].open;
}
}
}
とか、そんな感じ。
メソッドの書き方間違えた。 適当に定義してから、prototypeに追加しなきゃいかんな。 すまそすまそ。
922 :
Name_Not_Found :2005/12/13(火) 13:00:25 ID:6zGsaxmH
サンクス参考にします。
文法はめちゃくちゃだしヒントにもなっとらん。 アンタがすっこめ。
俺はこっちだ。tableならこんな感じか? function hoge(obj){ var td_p=pointGrepper(obj); obj.parentElement.previousSibling.childNodes(td_p -1).innerHTML=' '; obj.parentElement.previousSibling.childNodes(td_p).innerHTML=' '; obj.parentElement.previousSibling.childNodes(td_p +1).innerHTML=' '; obj.previousSibling.innerHTML=' '; obj.nextSibling.innerHTML=' '; obj.parentElement.nextSibling.childNodes(td_p -1).innerHTML=' '; obj.parentElement.nextSibling.childNodes(td_p).innerHTML=' '; obj.parentElement.nextSibling.childNodes(td_p +1).innerHTML=' '; } function pointGrepper(obj){ var point=0; while(obj.parentElement.firstChild==obj || point++)obj=obj.previousSibling; return point; } 〜〜〜〜〜 <table border> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>d</td><td onclick="hoge(this)">e</td><td>f</td></tr> <tr><td>g</td><td>h</td><td>i</td></tr> </table>
だから、人間の意思決定は click じゃなく mouseup だとあれほど(略
マインスイーパほどこれを実感できるものは無いんだが、何故 click。
>>921 ECMA262-1以前じゃあるまいに、今ではどうでも良い。
文句垂れるだけしかできん香具師に言われたくない。
オマイみたいなレスが増えてすっかり過疎化じゃないかw
答える気がないなら失せろ。
やる気があるならヘタクソコード晒せ。
>マスを押した時に、周りの(空いてる)マスを全部空ける
を実装しただけ。マインホゲホゲは知らんし
質問者のレベルも分からん。onclickの方がonmouseupよりも
理解できる可能性が高かったからそうしたまで。
>>925 は既出だが敢えてね。
JavaScript で、別ウインドウのURL(もしくはドメイン)等の 開いてるページを特定できる情報は取得できますか? document.domain やら location.href では、 同じサイト(ドメイン)内のものしかとれませんでした。
別にこのスレは過疎じゃないよ。これ以上進行速くして糞質問 増やしてどうするって感じ。アマちゃんな質問には厳しくて当然。 あんな情報のない質問勝手に解釈して答えてもゴミにしかならん。
document.body.scrollTopが取得できないからずっと悩んでたんだが
↓これだと取得できない。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
<html><body>
<input type="button" value="check!" onclick="alert(document.body.scrollTop)" style="position:absolute; left:0px; top:500px;">
<div style="height:1000px;">test</div>
</body></html>
で、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
消したら取得できた。
ez-htmlが勝手につけてくれてたのでおきまりの飾りぐらいに思ってた。
こういうのってあまり話題にのぼらない気がするけど
動作に影響するような重要な記述だったのね。
> こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど > こういうのってあまり話題にのぼらない気がするけど
はじめは誰だってわかんないものなんだよ。 そっとしておいてやれよ。
933 :
教えてください :2005/12/13(火) 21:42:19 ID:ZYzPCBM3
左クリックを使用できないようにjavaScriptを組んだつもりでしたが、機能しません。
どこが間違ってるのかご指南ください。
問題のHP
http://urei.ojaru.jp/top.htm フレームを使用してますが
Images→***のリンク→左使用不可ページ となってます。
*** のページ 左使用不可ページ直リン防止script
左使用不可ページ 左使用不可script
このようにしたのですが
・・・もうどうしていいのか分らないのです
因みに漏れのJavaScript知識は、サンプルをそのままコピペするだけ
プログラム内容はまったく読めません
>サンプルをそのままコピペするだけ >プログラム内容はまったく読めません 帰れ
そ、、そんなぁ。。。。
>>933 Java Spring Framework のスレにマルチしてんじゃねーよ('A`)
~~~~~~ ~~~~~~~~~~~
>>930 超既出だな〜
document.body.parentNode.scrollTop
後は調べろ
本当にやる気ない奴だな 手とり足とりでも逝ってろ
>>934-935 の流れならマルチもしたくなるわぃ!
しかしおまんコら、他所の板へのマルチを何でこんなに早く見破れるんだぃ?
さては・・・・・・・・
ひろゆきの手下どもだな!コノヒキョウモノ!
新スレは975超えたら。テンプレは今回変更なしで?
>document.body.parentNode.scrollTop どこかのHPのアドレス? >手とり足とりでも逝ってろ ちんこに遂てはmail欄参照w っか、ここメール欄はIeでは読めないんだね 貧乏人は2chプラウザのpass買えないだろヤーィヤーィザマーミロ しかしお前ら・・・IP出ないと思って好き勝手なことを・・・・・ こんな下らんReで1000まで突っ走る気か?!ヒコクミンメ!
>>942 まず
>>1 を読め。このスレは自分で修練を積んで良いJSが書けるように
なるためのスレなんだ。だからコピペのみの人は対象外ということ。
2度とくるな。このスタンスで43スレも来てるんだから今更アンタが
抵抗したって変わらんよ。
>>940 真剣ですキパパリ
それは恰も、
中田氏妊娠した中根かすみが、
泣いて頼んで強引に結婚まで持っていったの如くです
でも・・・・・
オスカーの出っ歯がジャニのタンソクチビガニマタに遊ばれて中絶したのは、悲しい周知
どうか皆様
漏れの切なる質疑、中絶させないでねオナガィ
>>943 ンジャ、もう次スレなんか要らないね?!
てか、漏れのような初心者が質問できるスレIPここに書きなさい
くどいようですがセン----以下割愛
君乳のような世間知らずは知らないと思うが
割愛≠割礼
勉強になりましたか?
>>941 そろそろVBSもこのスレでOK とか?w
だって可愛そうじゃんw
>>945 そうそう、それこそが大人の回答と言うものだ
ンジャ仕方ない、ちよっと見に行ってやるか
どうせ藻前の自動登録悪質課金サイトだとは思うけどな
949 :
945 :2005/12/13(火) 22:44:57 ID:???
s/942/941/cgisox
まあ、2度と来ないでいい奴は沢山いるが、まっとうな質問者
もちゃんといるんだよ。だから
>>975 超えたら次スレね。
そして厨房な粘着はスルー。これ2ちゃんねるの常識。
>まっとうな質問者 それは私ですキッパリ
ここまで読み飛ばした
ま、これまでもテンプレに逆らってゴネる奴はいたが 消えていったな。せいぜい頑張りたまへ。5年くらい 頑張れば変わるかも知れないよ(スレ1が2000年に立ってる)。
テンプレは変えなきゃならんな。 翻訳を除いて、個人サイトを全て削除。 情報が古いとか偏っているとか以前に、全然見ないから、意味が無い。 仕様に、ECMA357-1追加(必須)。 ヴェンダサイト developer.mozilla.org に書き換え。
そうすると初心者は誘導じゃなくて排除の方向でテンプレ修正か?
まあ古いってばそうだが、
そこを消すと(いるかはっきり分からんがw)
それ見て自力で解決してたネラーでJavaScript初心者が
ここのルールも知らない
>>944 みたいな厨化する結果になっても知らないけど
まあどうせルール無視のネット初心者さんが増えるようなもんなんで
俺はどちらでも構わんが、そういう理解での提案?
ここではライブラリとかは使わない方向なの? 別にスレがあんの?ないよね?
なんのライブラリ?
>>957 いや、そりゃJavaScriptの・・・。
Prototypeとかさ、ほかにもいっぱあるじゃん。
便利じゃね?
959 :
Name_Not_Found :2005/12/14(水) 01:56:59 ID:irqQwFXr
初心者質問スマソ SetInterval()でタイマーセットして コールされる関数で eval("document.image1.src='image"+i+".jpg'"); i++; という漢字にして毎回違う画像を表示したいのですが これが実際は一回しか読み込まれません document.open()、close()ってものが鍵のような気がするのですが わかりませんでしたすいません どなたかかみくだいて教えてくれますまいか・
var i = 0; function func(){ var filename = "image" + i + ".jpg"; document.image1.src = filename; i++; } window.onload = function(){ setInterval("func();",1000); } とか?
秒数が1桁の時に00とか01とか表示したいんですが、どうすればいいんですか var lmDateStr = new Date(document.lastModified); var lmYear = lmDateStr.getFullYear(); var lmMonth = lmDateStr.getMonth() + 1; var lmDate = lmDateStr.getDate(); var lmHH = lmDateStr.getHours(); var lmMM = lmDateStr.getMinutes(); var lmSS = lmDateStr.getSeconds(); var week = new Array("日","月","火","水","木","金","土"); document.write("最終更新日:" + lmYear + "年" + lmMonth + "月" + lmDate + "日(" + week[lmDateStr.getDay()] +")" + lmHH + "時" + lmMM + "分" + lmSS + "秒<BR>");
>>961 var lmSS = lmDateStr.getSeconds();
lmSS = (lmSS < 10)?"0"+lmSS:lmSS;
>>962 すいません、こんな深夜にありがとうごさいましたおかげで助かりました
>>963 ちなみにこんな便利なのあるよ
document.write(new Date().toLocaleString());
秒も2桁表示
>>954-956 ECMA357-1は入れるけど、それ以外の個人サイト消去とか
ライブラリとかはこんな950超えてからじゃ議論できないので
保留して次スレで議論にしてよ。洩れ的にはライブラリには
あまり興味ないけど、扱った方がいいという人が多ければ
収録して紹介してもいいけど。ただ、ライブラリ使うだけの
客が増えるのもなあという気持ちもあるね…
966 :
955 :2005/12/14(水) 08:43:57 ID:???
ラジャー。スレ建て頼みます。
967 :
959 :2005/12/14(水) 09:10:43 ID:???
>>960 さん
ありがとうございます。
でもやはり一度しか読み込まれませんでした
netscapeでは読み込み中状態が続き、
IEではステータスバーに「ページでエラーが発生しました」と表示されるようになります
968 :
844 :2005/12/14(水) 10:04:01 ID:???
>>967 どうせ name="image1"
忘れてるんだろ?
てか、エラー出たならエラーの詳細賭け
>>967 エラーが出る最小限のソースを作って貼れ。エラーの場所と内容も
書け。それらができないくらい無能な奴は帰ってくれ。幼稚園じゃ
ないんだ。「XX番と同じです」なんてのは却下。何を間違えて変更
したか分かったもんじゃないからな。
人にものを尋ねようとするときに自分の手間を惜しむ奴が 多すぎるよな。できることはひととおり尽くした上で人に頼るべきだよ。
>>967 あら、動かなかった?すまそすまそ。酔ってたからw
ちゃんと書いてみる。
// ------ init ------
var rimg = new Array(); var rimg_src = new Array();
var rinterval = 1000 * 1; var rcount = 0; var rtimer;
// ------ 画像のパスを好きなだけ書く ------
rimg_src[rimg_src.length] = "foo/var/hogehoge.jpg";
rimg_src[rimg_src.length] = "etc/funnyaka/nurupo.jpg";
rimg_src[rimg_src.length] = "
http://www.google.co.jp/intl/ja_jp/images/logo.gif ";
つづく
つづき // ------ 本体 ------ function rotation(){ if(!document.getElementById("rotate")){ clearTimeout(rtimer); return; } var target = document.getElementById("rotate"); if(rimg[rcount]){ target.src = rimg[rcount].src; rcount = (rcount < rimg.length-1) ? rcount + 1 : 0; } rtimer = setTimeout("rotation();",rinterval); } // ------ 起動 ------ window.onload = function(){ for(var i=0 ; i<rimg_src.length ; i++){ rimg[i] = new Image(); rimg[i].src = rimg_src[i]; } rotation(); } つづく
つづき で、htmlに <img src="foo/var/hogehoge.jpg" id="rotate"> を仕込む、と。今度は動くはず。 おしまい
>>964 toLocaleString は、ローカル設定の影響を受けるから、
秒が2桁で返らない場合が無いとは言い切れない。
toUTCString や toGMTString なら、RFC1123形式で返ることが保証される。
時と分に関しては、時差の影響があるから、
var d=new Date();
d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
alert(d.toUTCString());// 末尾に " GMT" が付くが、日本時間。
のように setMinutes して、時差の影響を消す。
// 過去ログに何回か出ている。
// いわゆるまとめサイトがあるスレでは、過去ログチェックが強制される。
// このスレも例外ではない。
>>961 は、まず、過去ログ検索しろ。
// JSCript の toUTCString と toGMTString はバグっているが、
// それは日付けが1桁になることがあるというものであり、
// 秒については、必ず2桁で返る。
さ、テンプレの議論しよ。チュートリアルぽいサイトはやはり載せるべき でしょ、何もないとなおさらとほほに行かれる。それは嫌。 ライブラリは…ライブラリの利用に熟達してもJSの達人にならないような 気がするので個人的には気が向かないけどね。
JavaScript+Flashについて質問です。
アクセスしたユーザのリファラーを判別してFlashに変数を渡したいのですが受け渡しができていません。
どこが間違っているか、どなたかご教授ください、お願い致します。
はじめはブラウザはIE5.5〜で動作できればいいです。
他にもいい方法がありましたらアドバイスお願いします。
[JavaScript]
check = "
http://www.hoge.com/ ";
ref = top.document.referrer;
if (ref.indexOf(check) < 0){
window.document.hoge.SetVariable('_root.ref',0);
}else {
window.document.hoge.SetVariable('_root.ref',1);
}
[HTML]
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="
http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0 " width="100" height="100" id="hoge">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="hoge.swf" />
<embed src="hoge.swf" width="100" height="100" name="hoge" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="
http://www.macromedia.com/go/getflashplayer " />
</object>
>>977 悪いけど、残りはテンプレ議論で埋めるから、質問は新スレでしてもらえないだろうか。
>>976 ライブラリサイトへリンクすると、そのライブラリに関する質問が来てうざいかも
しれない。一方、ライブラリ作って公開する猛者の書いたコードについて議論できれば
おもしろいかもしれない。あ、議論はよそで、か。
980 :
977 :2005/12/15(木) 23:16:09 ID:uwULeDHV
flashのほうは、特に通信関係は組まなくても flash上の変数_root.refに0か1が受け渡されるはず名のですが。。
>>980 いや
flash 内部で使うなら
ActionScript で参照すればいいだけじゃないかと思ってさ。
>>978 それはスレの話題範囲が広くなって収拾がつかなくなるということ?
それともスレ消費が激しくなることへの懸念?
後者なら、一部の初心者排除厨が躍起になって自治しようとしているからなのか
以前よりそういう書きこみ頻度と粘着度は減ってるし、
(俺は減り過ぎだと思うが次スレでホレ氏に噛み付く始末)
次スレ>> 1>> 3-4で名前欄でそこそこ目立つ色で誘導できてるし、
違った話題も入れてみてもいい時期かも。
983 :
Name_Not_Found :2005/12/16(金) 09:56:55 ID:T2EhfTQq
すいません。ちょっと質問です。 DOMで特定の要素を取得するとき、childNodesを使うメリットってなんですか。 getElementByIDでも同じことができそうなので、そのちがいがよく分かりません。
>>983 例えば、ある ul の 2 番目の子要素(li) のテキストを変更したい時とか。
<ul id="list">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<!--
var ulElem = document.getElementById("list");
var changedItem = ulElem.childNodes.item(1);
changedItem.firstChild.data = "changed";
-->
li の数が動的に変化する場合、li 全部に id を(動的に)割り振るよりも
ul にだけ id を割り振って、ul から li を辿った方が後々の変更に強い。
<script language="javascript"> <!-- x="1"-2; document.write(+x+"<br>"); x="1"+2; document.write(x); --> </script> 初心者用の本の最初のほうで、いきなりわからないので教えてください。 document.write(+x+"<br>"); の部分でxじゃなくて +x+と書く理由を教えてください。 それと、x="1"-2; は-1なのに x="1"+2;は12なのはなぜですか?
>>985 > xじゃなくて +x+と書く理由
前の+はわからん、後ろの+は"<br>"との連結。
> x="1"-2; は-1なのに x="1"+2;は12なのはなぜ
JavaScriptでは変数型が明示されず、そして+演算子は文字列の連結にも使えるから。
-演算子は純粋に引き算だから"1"が数値と見なされて引き算の結果-1が返る。
わからなかったら次スレで聞いてくれ。
>>982 レス消費はそんなに問題ないと思う。今でも十分勢い低いし、ここ。話題の範囲が
広くなるのもいいことだと思う。
でも質問系スレでは「議論はよそで」がデフォでしょ。ちょっとくらい検討しあうのは
ありだと思うけど、議論が白熱してると、質問者は流れぶった切って質問しなきゃ
ならないから、よくないかもなあ、と。
あと、人の作ったライブラリのサポート的な質問に答えるのは疲れるし。
って感じなんだけど、どう?
ライブラリの質問してもそのライブラリを熟知してるヤシで ないと回答できないよな。そんなに熟知してるヤシ多いのかな。 質問しても回答されないのが多いと盛り下がるからね、、、
988 :
983 :2005/12/16(金) 14:43:11 ID:???
>>987 > そのライブラリを熟知してるヤシで
> ないと回答できないよな。そんなに熟知してるヤシ多いのかな
つか、一人もいないでしょ。その場で見て理解するしかない。いろんな人が
printfとかgetElementsByTagAndClassNameとか作ってて、俺が自分でよく使う
俺ライブラリにも入っているけど、作り方は千差万別だろうしね。
現状での「○○というサイトで配布されていたスクリプトを貼ってみましたが動きません。
教えてください。」ってタイプの質問と変わらない感じで。
それも質問の仕方じゃない?
>「○○というサイトで配布されていたスクリプトを貼ってみましたが動きません。
は少なくとも、
>>2 の2違反だし。
そういう場合は、ライブラリと自分のコードをわかるように晒さないと話にならないが
>>990 その
>>2 の2違反が、現状でもまだあるのに増えるのかなー、と。
と、懸念してみたんだけど、とりあえず次々スレでライブラリ掲載を
試してみてるのもいいような気がしてきた。
で、駄目だったらその次でやめればいいし。
あと他の意見がなければそういう話にしておいて、 またvol44の最後ぐらいで スレ建て人か誰かから話を出してもらえばいいでしょ。
>>984 なんかとんでもないこと言ってるな。
コメントアウトもHTMLなのかJSなのか分からんし。
>>983 ID知ってればgetElementByID
IDがなかったり、動的に作ってて名前保持が面倒な時はchildNodes
で、おすすめのライブラリは早めに収集した方が。 Prototype.jsとかは洩れは興味ないんだけど有名なの?
梅茶宇?
梅茶江!
漏れが初の1000getするからお前ら書き込むな
。・゚・(ノД`)・゚・。初1000ゲット
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。