08/06/19 13:27:42
>>377
URLリンク(www2u.biglobe.ne.jp)
によれば、a[10]が存在していればa[0]~a[9]も自動的に存在する
ようになる、と読めるね。
379:Name_Not_Found
08/06/19 13:35:20
>>378
そうか?別段そういうことは書いてないと思うが
380:377
08/06/19 14:12:28 wVAEkJPX
URLリンク(builder.japan.zdnet.com)
この前後の連載を読んで理解しました。
C/C++ ばかりだった自分にとってはずいぶんと違う世界でした。
381:Name_Not_Found
08/06/19 14:29:59
>>379
そうだね、何か勘違いしたようで、申し訳ない。
382:377
08/06/19 14:43:49 wVAEkJPX
JSON関係の質問もここで良いですか?
JSONでは文字列は「ユニコード」であるとされていますが、
これって非ASCII文字はすべて \uxxxx 形式のエスケープで表記せよ、
ということなのでしょうか?
Unicode といわれても表現方法は UTF-8 を含め多数あるので、
その当たりの表現方法については決められているのかなと
思ったのですが、特に規定されていないようでどうしたものかと。
383:377
08/06/19 14:58:31 wVAEkJPX
すんません、おちついてRFC読み直してみたら書いてありました。
URLリンク(www.ietf.org)
384:Name_Not_Found
08/06/19 19:12:47
うろ覚えで何て単語で検索して良いのかわからないので確認したいんのだけど、
「ある要素を監視しておき、その要素に他の要素が追加された時にイベント発生」
というような機能なかったでしたっけ?
誰か知ってたりしたら教えてください。
385:Name_Not_Found
08/06/19 19:20:44
>>384
DOMNodeInserted?
386:Name_Not_Found
08/06/19 21:22:35
>>385
ドンピシャだった!ありがとう。
387:Name_Not_Found
08/06/19 22:57:50 HjeHeh3z
動的にサーバ上のjpgを読みに行くにはどうしたら良いでしょうか?
DWに標準でついてるスワップイメージを最初考えたんですが、
アレだとすり替え用のデフォルトの画像が必要です
完成イメージとしては、チェックボックスをクリックすると、それに応じた
画像が表示され、チェックを全部クリアすると画像が消える感じです
すみませんがどなたかアドバイスお願いします
388:Name_Not_Found
08/06/19 23:02:03
>>387
賢い俺が翻訳してやると、画像URIをユーザーが選べるようにしたい、ということかね。
389:Name_Not_Found
08/06/20 00:18:25
>>378
で、多数チェックしたときはどうなるって?
390:Name_Not_Found
08/06/20 01:55:59
ページ上にある特定のスタイル 例えば style="color:red; を
ボタンクリックしたら style="color:black; というようにしたいのですが
style自体は他にも使われているのでstyleの要素だけでは抜けられないと思います
なのでcolor:red; → color:black; というようにテキストを置換する方法を考えていますが
どのように書けばいいのでしょうか?
document.replace('color:black; ','color:black; ')
これだとうまくいきません
391:Name_Not_Found
08/06/20 02:10:30
>>390
<... style="color:red"な要素すべてを<... style="color:black"にする
でよしか?
var elements = document.getElementsByTagName('*');
for (i = 0; i < elements.length; i++) {
if (elements[i].style.color === 'red') {
elements[i].style.color = 'black';
}
}
392:390
08/06/20 03:36:54
>>391
ありがとうございます
styleの要素が二つのとき
style="color:red; font-size: 14px"
こう書いたのですがうまくいきません
if((elements[i].style.color === 'red') && (elements[i].style.fontSize === '10')){
elements[i].style.color = 'black';
}
どのような条件式になるのでしょうか・・・
393:Name_Not_Found
08/06/20 06:29:30
自己解決しますた
394:Name_Not_Found
08/06/20 11:10:56
他のページに飛ぶのではなく、同一ページ内で
swfの表示サイズ(width=***, high=***)を
閲覧者がポップアップメニューで切り替えられるような
スクリプトってありますか?
画像でも同じようなスクリプトがあればswf用に転用出来ると
思うのですが、もしそのようなものがあればご教授ください。
395:Name_Not_Found
08/06/20 11:47:15 KZpiizg0
下記のようなフレーム構造で
under.html内のjavascript実行(innerTextで文字列を変える)してから
top.htmlでsubmit実行すると、under.htmlが別ウィンドウで開いてしまいます。
理由と解決策をご存知でしたら教えてください。
※JavaScript実行しない場合は正常に動作します。
□test.html
<frameset rows="100,*" border="1">
<frame src="top.html" name="top">
<frame src="under.html" name="under"/>
</frameset>
□top.html
<form action="under.html" method="post" target="under">
<input type="submit" value="送信">
□under.html
<table>
<tr><td>aaa</td><tr>
<tr><td>bbb</td><tr>
<tr><td>ccc</td><tr>
</table>
396:Name_Not_Found
08/06/20 11:50:02
>>395
その問題を起こしているげなスクリプトを貼らずに相談とは
いい度胸だね。
397:Name_Not_Found
08/06/20 12:48:16 KZpiizg0
仰るとおりです。申し訳ないです。
原因となってるっぽい箇所です↓
onblurでtest()を呼び、計算させて<td></td>の中をinnerTextで書き換えるとい
う処理ですが、
この計算実行で既に発生することがわかりました。計算結果は正しいものとなっ
ています。
fuction test()
{
total = 0;
for(i=0; i<3; i++){
object = getObject(i,"02");
total += parseInt(object.value);
}
}
function getObject(row,col)
{
name = "a" + row + "b" + col;
return document.フォーム名.elements[name];
}
398:Name_Not_Found
08/06/20 13:30:09
>>397
あのねえ、nameという変数を使いたいのなら「var name = ...」
のようにしてローカル変数にしないと。今はグローバル変数
つまり window.name を書き換えているため、そのフレームの名前が
under でなく a0b02 みたいな名前になっていると思われ。
399:Name_Not_Found
08/06/20 13:53:53
>>398
解決しました!ありがとうございます!
特に意識せずに変数名つけてましたがローカルグローバルもちゃんと考えなきゃですねm(__)m
勉強になりました!
400:Name_Not_Found
08/06/20 16:31:15 UBjOGtUw
ファイルをDLさせたいがそのファイルの生成にすげー時間がかかるんで、
submitボタン連打を5秒間だけ防止したい
<input type="submit" name="button" value="push" onclick="return renda();">
var timeout=0;
function renda(){
timeout++;
if(timeout>5){
timeout=0;
document.button.button.disabled = false;
return false;
}else if(timeout==1){
document.button.button.disabled = true;
window.setTimeout("renda();",1000);
return true;
}else{
window.setTimeout("renda();",1000);
return false;
}
}
FFではエラーも検出されずきちんと動作しましたがIEでは動きませぬ。何故でせう。
401:Name_Not_Found
08/06/20 16:39:48
>>400
「動かない」の内容をちゃんと書けって。エラーが出るのか
何も反応しないのか、その時ボタンは押せてるのかとか。
402:Name_Not_Found
08/06/20 16:40:49
document.compatMode=='CSS1Compat'
DOCTYPEをこれより少ない文字数で判定する方法はありませんか?
IE専でかまいません
403:Name_Not_Found
08/06/20 17:05:31
var d = document, c = d.compatMode;
c == 'CSS1Compat'
404:Name_Not_Found
08/06/20 17:15:02 UBjOGtUw
>>401
そーりー
・5秒間禁止は問題なく動作
(押した直後に押せなくなり、5秒後に押せるように戻る)
・次画面に遷移しない
(次画面をテキスト表示だけ、等にしてみたが反応せず)
・function renda(){document.csvDL.button.disabled = true;window.setTimeout("renda();",1000);return true;}
とすると動作
405:Name_Not_Found
08/06/20 17:27:54
>>403
すいません、そういうことではなくて
文字総数で少なくしたいので
document.compatMode=='CSS1Compat'
の33文字より少なくできる方法はありませんか?
compatModeプロパティにこだわる必要もないです。
406:Name_Not_Found
08/06/20 17:34:31
時間待ちをする関数とonclickで呼ばれる関数を一緒くたに
したから自分でロジックを追えなくなってるんでしょ。
分けたら。そもそも5秒なんだからタイムアウトを5000で
作ればいいのに。
407:Name_Not_Found
08/06/20 20:07:31 UBjOGtUw
>>406
Σ(゚□゚;)!!
408:Name_Not_Found
08/06/20 23:56:55
変数にweb上のHTMLデータを代入したいのですが
どのようにすればいいのでしょうか。
409:Name_Not_Found
08/06/21 00:10:16
>408の動作環境を書き忘れました
Javascriptを組み込んだHTMLはweb上にあります
そのHTML内のJavascriptが読み込みたいHTMLデータもweb上にあります
ローカルのファイルは一切いじりません
410:Name_Not_Found
08/06/21 00:12:35
>>409
同じ鯖なのね?それならXmlHttpRequest()で読むんでしょ。
411:Name_Not_Found
08/06/21 01:22:00
>>410
ぉ、お、おおお
ありがとうございますm(_ _)m
Ajaxって今ではどのブラウザでも標準でついているんですね
前ちょろっと見た時にライブラリが必要なのかなーとか思ってましたが
凄い敷居が低くてありがたいです
別の鯖ですが、別の鯖だと動作しないのでしょうか
2ch全板トーナメントスレが新しくなる度にHPを更新するのが面倒なので
色々考えた末にJavascriptで実装できそうかなーと思って
調べてたのですが結果分からず質問致しました。
スクリプトは塩街にでも置こうと思ってます
412:Name_Not_Found
08/06/21 01:22:21
>>410
大文字小文字
413:Name_Not_Found
08/06/21 01:25:14
魚の話題はスレ違い。
というか、馬鹿な初心者にははっきり言った方がいいな。
鯖って何ですか?勘弁してください。
414:Name_Not_Found
08/06/21 01:44:31
俺はプロキシサーバのことを「串」と書く点も厨判定に利用してる。
415:Name_Not_Found
08/06/21 01:53:21
2chやめとけ
416:Name_Not_Found
08/06/21 01:55:31 N+PRjJ56
よろしくお願いします。
下記記述で「/」の為、jsが動きません。
「/」は必ず使いたいので、回避方法をご教示いただけませんでしょうか、、、
function checkA(){
var flag = 0;
if(!document.iform.果物/りんご.checked)
if(!document.iform.果物/みかん.checked)
{
flag = 1;
}
if(flag){
window.alert('果物項目がチェックされてません');
return false;
}
else{
return true;
}
}
417:Name_Not_Found
08/06/21 02:41:17 lAfacg6N
JavaScriptでサーバ上にあるXMLファイルを読み込む処理を勉強しております。
参考URL:URLリンク(www.openspc2.org)
そこで質問です。
以下のXMLファイルで、cacheタグに挟まれているurlタグの中の文字列は出力しないようにし、
resタグ直下のurlタグのみを出力するには、以下のJavaScriptのソースをどう改修すればよいでしょうか?
【XML】
<?xml version="1.0" encoding="UTF-8" ?>
<set>
<res>
<title>タイトル1</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
<res>
<title>タイトル2</title>
<url>URLリンク(hogehoge.jp)
</res>
<res>
<title>タイトル3</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
</set>
418:417
08/06/21 02:42:14 lAfacg6N
【JavaScript(HTML内)】
~(省略)~
xmlData = httpObj.responseXML;
resTag = xmlData.getElementsByTagName("res");
titleTag = xmlData.getElementsByTagName("title");
urlTag = xmlData.getElementsByTagName("url");
resultTxt = "";
for(i=0; i<resTag.length; i++){
s_title = titleTag[i].childNodes[0].nodeValue;
s_url = urlTag[i].childNodes[0].nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
~(省略)~
【現状の出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(cache.hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
【期待する出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
419:Name_Not_Found
08/06/21 02:58:43
>>418
urlTag[i].parentNode.tagName !== 'cache' とかで見えんかな
420:Name_Not_Found
08/06/21 03:31:05
JavaScriptでもweb上のファイルを読み込みができるんだな
そういうのはいつもPHPでやってたわ
そうかリロードしなくても更新ができるとういうわけか
421:Name_Not_Found
08/06/21 08:25:07
>>420
そういうのをAjaxと呼ぶんじゃなかろうか。
422:Name_Not_Found
08/06/21 08:50:42
>>413
テンプレのFAQにも「鯖」が使われているんだけど。
なんでテンプレには文句言わないの? (直すのに反対
してるわけではなくて、なんでテンプレ論議のときに
指摘しないのか不思議なだけ。)
423:Name_Not_Found
08/06/21 08:57:56
>>422
馬鹿な初心者を構っちゃらめ
ヌルー汁
424:Name_Not_Found
08/06/21 11:20:57
【鯖】
スズキ目サバ科の海水魚、マサバとゴマサバの総称。魚体は紡
錘形でやや側扁し、背びれ・尻びれの後方に小さなひれがいく
つか並ぶ。世界に広く分布し代表的な食用魚。俳句では夏の季語。
○―釣や夜雨のあとの流れ汐/蛇笏
425:Name_Not_Found
08/06/21 11:23:48
>>422
一括りにするつもりは無いが、こういう奴はプログラマに本当に多い。
性質上そうなるのかもしれないがリアルで付き合うのはマジ簡便。
426:Name_Not_Found
08/06/21 11:49:18
>>425
プログラマの空気の読めなさはまじで異常だよな
あと議論がいつも小学生みたいな揚げ足取りになる
極端な例で言えば「何年何月何日何時何分何秒地球が何回周った時?」とかそんなの
427:Name_Not_Found
08/06/21 11:59:00
プログラマってほんと頭悪い奴の職種なんだな
有能マが可哀想だ
428:Name_Not_Found
08/06/21 12:05:55
スレ違いな話題はよそでやってね。
429:Name_Not_Found
08/06/21 12:10:01
>>413 が激高して多重自演してる様に激藁タよ。
430:Name_Not_Found
08/06/21 12:16:18
HPにアクセスカウンターつけたいんですがどうすればよいのでしょうか?
使ってるソフトはHPビルダ12です
ググったところレンタル?するもののようですがいまいち概念がわかりません
いま↓のようなところを読んでるのですが
Javaスクリプトをhtmlソースに組み込むことでカウンタをレンタルして効果がでてるということなのでしょうか・・・?
URLリンク(count.sekkaku.net)
431:Name_Not_Found
08/06/21 12:17:16
おれ高校中退後コンピュータの専門がっこ。会社じゃ目下某服
飾企業のHPのリニューアルPJ参加中。無能なのはよくわかって
る。といって他にできるものねぇしなぁ。悪かったな。
432:Name_Not_Found
08/06/21 12:20:10
>>430
そのビルダとかいうのを卒業しないかぎりアンタには無理。
433:Name_Not_Found
08/06/21 12:20:15
>>431
充分有能じゃないか自信もて。
無能ってのは何もできないのに他人を卑下してるやつのこと
434:Name_Not_Found
08/06/21 13:49:37
裏日本の金沢市でjavascriptの勉強会とか開催したら参加してくれる人
っているもんだろうか?ちょっと考えているのですが集まるかどうか不安。
内容としてはフラナガンの本を読むかprototype.js等のライブラリを読
むかとか考えてます。
435:Name_Not_Found
08/06/21 15:09:38
>>434<-ちょっとオフトピだがマジレス。
集まるかどうか不安なんて言ってたら何にもできませんぜ。
とにかくやってあんたのひた向きな背中を金沢市内の人間みんなに
見せることだろ。うちの区(東京下町)では区報にワークショップてな
コーナーがあって、PCはじめいろんなお稽古事関係が講習や教室を
開いて参加者を募集している。最初はまず人は来ないと思った方が
いい。そういうのをやると少しは素っ頓狂な質問も減るかなと思う。
がんばれ。
436:Name_Not_Found
08/06/21 15:39:09
マウスの座標取得で、
event.clientXなどでIEはで来たのですが、FF等で動きません。
クロスブラウザ対応なマウス座標取得はどうすればいいのでしょうか?
437:Name_Not_Found
08/06/21 15:48:01
>>418
var xmlData = httpObj.responseXML;
var resTag = xmlData.getElementsByTagName("res");
var titleTag = xmlData.getElementsByTagName("title");
var urlTag = xmlData.getElementsByTagName("url");
var resultTxt = "";
var i = 0, j = 0;
while(titleTag[i]){
s_title = titleTag[i].firstChild.nodeValue;
if(uriTag[j].parentNode.nodeName == "cache"){
j++;
}
s_url = urlTag[j].firstChild.nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
こんな感じかな
438:Name_Not_Found
08/06/21 15:56:10
>>435
確かにそうだな。やってみなけりゃ何も始まらんな。
そういう場所をまず探してゆくか。
ありがとう。
439:Name_Not_Found
08/06/21 16:05:26
>>436
過去スレ全集で検索すればいくらでも見つかるよ。
440:Name_Not_Found
08/06/21 20:59:33
>>436
Event.pointerX(event) Event.pointerY(event)
441:Name_Not_Found
08/06/21 21:00:45
言い忘れたゴメン
上のはprototype.jsを使ったやつな
442:Name_Not_Found
08/06/21 21:01:52
XSLTってあったな。
今時のサーバとブラウザの世代交代を考慮すると、本番運用できるかもな。
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="res[child::title and child::url]"><xsl:value-of select="child::title"/> : <xsl:value-of select="child::url"/><xsl:text> </xsl:text></xsl:template>
<xsl:template match="node()"><xsl:apply-templates/></xsl:template>
443:377
08/06/22 00:12:37 XEoiJWyd
あるテキストファイルがJSONファイルとして正しいかどうかを検証してくれるサイトってありませんか?
444:Name_Not_Found
08/06/22 02:24:55
それはここに書く前に検索した方が比較にならないほど早く解決するだろう。
もしファイルの内容をじかに書かなければならない不便な物しか見つからなかったら、ファイルの内容を投げて結果を調べるコードを書けばいいだろ。これまたそこそこ丁寧に書いても30分以内に書ける。
つまり、オマエが物乞いだということだな。生き恥晒してんじゃねえよ。
445:Name_Not_Found
08/06/22 04:11:47
>>442
URLリンク(www.wowarmory.com)
恐らく毎日膨大なPV数であろう、一般ユーザー向けのサイトで使われている興味深い例。
>>443
JSON validatorあたりでググってみる。
>>444
>生き恥晒してんじゃねえよ。
446:Name_Not_Found
08/06/22 04:17:24 W8+DpW9j
以下のような<div>でくくったcheckboxが2つあります。
<div id="boxA[]" style="display:none"><input type="checkbox" name="cbA[]" value="1" /></div>
<div id="boxB[]" style="display:none"><input type="checkbox" name="cbB[]" value="1" /></div>
このdiv二つは、別のプルダウンのoptionの選択の切り替えでdisplayを操作していて、
・boxAを表示してるときはboxBが隠れている
・boxBを表示してるときはboxAが隠れている
・プルダウンが未選択(デフォルト状態)の時は両方とも隠れている
…という形になっています
また、この「<div>2つ + 操作してるプルダウン1つ」は3セットあります。
このとき、
・3セットのうち、2セットをboxBを表示&チェック(boxAはdisplay:none)
・残りの1セットををboxAを表示&チェック(boxBはdisplay:none)
してPOST送信するとポストデータに異常が発生します。
boxB、boxAともに、display:none状態のまま送信した分が、データとしてわたらないのです
以下、ポストデータを var_dump($_POST) したものです。
["cbB"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1"}
["cbA"]=> array(1) { [0]=> string(1) "1"}
本来なら、両方とも array(3) となるように、配列が3つわたると思うんですが、
どうしたら解決するでしょうか?
URLリンク(memo.hirosiki.jp) を見ると、この問題に触れてるんですが
送信エラー起こす場合と起こさない場合があるようで、イマイチ答えになりません
対策や意見をもらえたら幸いです よろしくお願いします
(ちなみに、データの入力はCHECKBOXでなくプルダウンでも同様になります)
447:Name_Not_Found
08/06/22 04:54:40
チェックボックスは off だとデータ渡らないけどね
そういうことじゃなければソースをどっかにうpして
正直読んでてよくわからん
448:Name_Not_Found
08/06/22 05:46:32
>>447
いや、そういうことだと思う
個人的にはidやnameに大かっこ使ってるのが気になってしょうがないけどこれ不正じゃないの?
449:Name_Not_Found
08/06/22 05:51:59
name の方は [] で送ると
サーバサイドのスクリプト上では配列として受けれるんだよね
id の方はちとマズいだろな
450:Name_Not_Found
08/06/22 05:58:56
なるほど
451:Name_Not_Found
08/06/22 06:12:03
>>446
input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
その言語には array_values() や array_flip() などの便利なトップレベル関数があるのだから、それらのどれらかを使える形を整えろ。
あと、CSSのdisplayプロパティとその値は関係ない。
ついでだが、>>449の言う通り、div要素型(に限らず)、id属性値はNAME・ID型だから括弧は使えない。
(さらについでだが、input要素型のname属性値はCDATAだからだいじょうぶ。)
452:377
08/06/22 07:41:29 XEoiJWyd
>>445 THX
JSONLint The JSON Validator
URLリンク(www.jsonlint.com)
453:377
08/06/22 08:06:51 XEoiJWyd
TinyJSON - A Minimalistic JSON Reader Based On Boost.Spirit, Boost.Any and Boost.Smart_Ptr
URLリンク(blog.beef.de)
C++好きの自分にはよだれが出る。
454:Name_Not_Found
08/06/22 09:23:27
XMLHttpRequestってIEとFFとかで動作違う?
こちらから指定したXMLの内容の一部(中で1から順番に番号を振ってる、その例えば10~20)をXSLTで変換して表示させようとしてるんだけど、IEでうまくいってFFでうまくいかない
ほとんど載ってた例文どおりに書いたんだが・・・
どこかわかりやすいサイトとかある?
455:Name_Not_Found
08/06/22 09:41:34
Firebug とか使ったらなんかわからんもんかね?
456:Name_Not_Found
08/06/22 09:45:22
>>453
クロスブラウザ対応のXHRっURLリンク(allabout.co.jp)
457:Name_Not_Found
08/06/22 09:45:45
失礼安価ミス>>456は>>454ね。
458:Name_Not_Found
08/06/22 09:47:21
その例文とやらを乗せるのが一番早いかと
459:Name_Not_Found
08/06/22 11:13:12
>>454
XMLHttpRequestはIE7以上でないと使えない
IE6以下はActiveXObject使うしかない
場合分けしる
460:446
08/06/22 12:07:53
皆さんありがとうございました、ご意見を参考に頑張ってみます
(idの値についてですが、書き間違えでした。ちゃんと
boxA1,boxA2,boxA3 boxB1,boxB2,boxB3 となっています
>>451
>input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
それだと場当たりの処理は出来ますが、「渡されるべき形で配列が渡されない」という
本質的な問題は解決しません
それで居心地が悪いので質問させてもらいました ありがとう
461:Name_Not_Found
08/06/22 12:59:10
なんだかヘンな方に議論が行っているような。
display:none だとその部分は「存在しない」のでデータが渡らない。
visibility:hidden だとその部分は「見えないだけ」なのでデータが渡る。
462:Name_Not_Found
08/06/22 13:20:00
> display:none だとその部分は「存在しない」のでデータが渡らない。
君の脳内ブラウザではそうかもしれんが
あんまり無責任な発言をしてもらっても困る
463:Name_Not_Found
08/06/22 14:47:27
display:noneもvisibility:hiddenも表示を消す、物は残ってる。
単にその存在分の空白が残るか残らないかって話だけ
464:454
08/06/22 14:56:11
レスthx
サンプルのURL消しちゃってたからもう一度探してくる
下が今弄ってるものなんだけど、いろいろ入れ替えたり書き直してたりしてたらIEでも動かなく・・・orz
IE7とFF2(今は3)を使っているから、テスト段階ではXMLHttpRequestだけでいいかと思ってそれしか書いてない
当然あとで書き足す予定
function goend(threadnum,startnum,loop){
var snum = startnum;
var fnum = Math.abs(startnum) + Math.abs(loop);
var xmlfilename=threadnum + ".xml";
var xmlt = new XMLHttpRequest();
var xslt = new XMLHttpRequest();
xmlt.open("GET",xmlfilename,true);
xmlt.onreadystatechange = function(){ if(xmlt.readyState == 4){
var xmld = xmlt.responseXML;
xmlt.send(null); } }
xslt.open("GET","../xsl.xsl",true);
xslt.onreadystatechange = function(){ if(xslt.readyState == 4){
var xsld = xslt.responseXML;
xslt.send(null); } }
var vali = new Array();
try{ vali=xsld.getElementsByTagName("xsl:variable");
}catch(e){ try{ vali=xsld.getElementsByTagName("variable");
}catch(e){ alert("getElementsByTagName Error"); } }
vali[0].text=fnum;
vali[1].text=snum;
var htmld;
htmld = xmld.transformNode(xsld);
document.write(htmld);}
465:Name_Not_Found
08/06/22 15:20:47 XEoiJWyd
JSONって{ "a": "b", "a":"c" }
みたいにオブジェクト(ハッシュ)のキーが重複するような
データは規格の上で間違っているとされているの?
それとも単に eval()で評価すれば後から設定したプロパティ
に置き換わるだけなのでそれでよしということなのでしょうか?
466:417-418
08/06/22 15:49:19 pf9eXiX0
>>437
㌧クスです!できました。
467:Name_Not_Found
08/06/22 15:55:22 pf9eXiX0
Yahoo!検索で一番上に出てくるサイトのリンクを作るプログラムです。IE6で動作確認しています。
「取得」ボタンを押すと、一回目はエラーが必ず出てしまい、もう一度「取得」ボタンを押すとうまくいきます。
一回目からうまくいくようにするにはどうしたらよいでしょうか?
何か、カウント用変数のiとjがおかしいことになってるみたいなんですが…。
ちなみにデバッグ用にalertを3箇所に書いてありますので、アラートいっぱい出てきてOKという方はコメントアウトを外して実行してみてください。
お願いします。
<html><head><title></title>
<script type="text/javascript">
<!--
word = new Array("javascript", "ajax");
site = new Array("2ch.net", "jbbs.livedoor.jp");
function createXMLHttpRequest(cbFunc){
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}
// 下に続く
468:467
08/06/22 16:03:24 pf9eXiX0
// 上の続き
function loadXMLFile(fName){
httpObj = createXMLHttpRequest(displayData);
if(httpObj){
httpObj.open("GET", fName, true);
httpObj.send(null);
}
}
function displayData(){
if((httpObj.readyState == 4) && (httpObj.status == 200)){
//alert("デバック用(成功):\ni = " + i + ", j = " + j);
xmlData = httpObj.responseXML;
Result_Tag = xmlData.getElementsByTagName("Result");
document.getElementById("src_" + i + "_" + j).innerHTML =
"<a href=\"" + Result_Tag[i].getElementsByTagName("Url")[0].childNodes[0].nodeValue + "\" target=\"_blank\">" + Result_Tag[i].getElementsByTagName("Title")[0].childNodes[0].nodeValue + "</a>";
}else{
//alert("デバック用(失敗):\ni = " + i + ", j = " + j);
document.getElementById("src_" + i + "_" + j).innerHTML = "読み込み中";
}
}
function SearchResultCount(){
for(i=0; i<site.length; i++){
for(j=0; j<word.length; j++){
//alert("デバック用(正しいカウント):\ni = " + i + ", j = " + j);
loadXMLFile("URLリンク(api.search.yahoo.co.jp)" + encodeURIComponent(word[j]) + "&site=" + site[i]);
}
}
}
// 下に続く
469:467
08/06/22 16:04:46 pf9eXiX0
// 上の続き
//-->
</script>
</head><body>
<form><input type="button" value="取得" onClick="SearchResultCount();"></form>
・「javascript site:2ch.net」での検索結果:<b><span id="src_0_0"> </span></b><br>
・「ajax site:2ch.net」での検索結果:<b><span id="src_0_1"> </span></b><br><br>
・「javascript site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_0"> </span></b><br>
・「ajax site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_1"> </span></b><br>
</body>
</html>
470:467
08/06/22 16:14:21 pf9eXiX0
--------------------------
長いソースでスマソ。
※エラーの詳細
「'document.getElementById(...)' は Null またはオブジェクトでありません。」
displayData()関数で、
i も j も、値は 0 か 1 しか来ないはずなのだが、
なぜか i = 2になったり j = 2になったり。なぜだ??
471:Name_Not_Found
08/06/22 16:24:30
iとjがグローバル変数だからよその関数などで入れた
値と混ざってるんじゃないの。
for(var i = ...
for(var j = ...
に直してみれば。
472:Name_Not_Found
08/06/22 16:36:52
学校の課題でスロットを作っています。色々なサイトでスロットのソース見てきたのですが、
どの関数がどのような役割をしているのかがよく理解できませんでした。
ためしに自分でも3つの画像を使ったスロットを作ってみたのですがスタートを押すと
画像が変わる処理が1回で止まってしまい、ゲームになりませんでした;;
ソースは次の通りです
473:Name_Not_Found
08/06/22 16:36:52
>>465
RFC 4627
URLリンク(tools.ietf.org)
>The names within an object SHOULD be unique.
>>467
この状態では、SearchResultCountとdisplayDataとではi,jの値を共有しない為。
<!--
var i,j;
word = new Array("javascript", "ajax");
最初の方にこのように書けば大丈夫だろうけど、i,jのような変数名をグローバルで使うのはお勧めしない。
474:472
08/06/22 16:41:56
function Setimage()
{
for(i=0;i<4;i++)
{
image[i]=new Image(200,150);
image[i].src="image"+i+".jpg";
}
}
function Scroll()
{
time1=setTimeout("Scroll1()",100);
time2=setTimeout("Scroll2()",125);
time3=setTimeout("Scroll3()",150);
}
function Scroll1()
{
document.photo0.src=image[n].src;
n++;
if(n>=4)
n=0;
}
475:472
08/06/22 16:43:13
function Scroll2()
{
document.photo1.src=image[n].src;
n++;
if(n>=4)
n=0;
}
function Scroll3()
{
document.photo2.src=image[n].src;
n++;
if(n>=4)
n=0;
}
(中略)
<td align="center"><input type="button" name="start1" value=Start! onClick="Setimage();Scroll()">
多分おかしいところはこのあたりだと思うのですが。。。どうしたら繰り返しの処理が正しく
行われるのでしょうか。
476:Name_Not_Found
08/06/22 16:51:14
なんて汚いソース。
先に配列と引数覚えればもう少しきれいになると思う。
477:472
08/06/22 17:20:37
>>476
ありがとうございます。
a = new Array("月曜日","火曜日","水曜日","木曜日","金曜日");
b = new Array("1時限目","2時限目","3時限目","4時限目","5時限目","6時限目");
for(i=0;i<a.length;i++)
{
for(j=0;j<b.length;j++)
{
var subject = (i+j)%5;
if( subject ==0){alert(a[i]+"の"+b[j]+"は数学です")};
if( subject ==1){alert(a[i]+"の"+b[j]+"は国語です")};
if( subject ==2){alert(a[i]+"の"+b[j]+"は英語です")};
if( subject ==3){alert(a[i]+"の"+b[j]+"は社会です")};
if( subject ==4){alert(a[i]+"の"+b[j]+"は理科です")};
}
}
↑これが教材でした・・・。このような感じで配列や引数もやったにはやったのですが
これ(配列等)をスロットの中でどのように使えばよいのかが分かりませんでした。
理解が全く足りてなかったようですね>< 基礎をもう一度学び直してきます。
長文失礼しました&ありがとうございました。
478:Name_Not_Found
08/06/22 21:46:49
>>473
> i,jのような変数名をグローバルで使うのはお勧めしない。
極論すれば、どうでもいい。
常に初期化する規約を設ける方が、実は、はるかに建設的だ。
毎週2時間かかる1000万レコード超のオラクルデータ更新を、スワップ10Gb以下に抑えながら、
JScriptだけで
やっている俺が言うのだから、かなり説得力は高いだろう。
479:Name_Not_Found
08/06/22 21:57:58
>>478
ループ中にi使う関数呼び出されたらどうすんの?
480:Name_Not_Found
08/06/22 22:14:17
>>479
おいおい、まさか、スコープ超えて使うわけないだろ。
因みに、関数をほとんど使わない。とにかく、追加要求がまとまったら、ダラダラとグローバルに追記して実装する。
481:Name_Not_Found
08/06/22 23:21:17
関数に分けないでひたすらグローバルに書くなんて
40年前のスタイルだね。何箇所かで同じ処理をするときは
そのコードを必要なだけコピペするわけ?
482:Name_Not_Found
08/06/23 00:26:30
>>480
だから関数を「まったく」使わないなら全部グローバルは
分かるけど。関数を書く時にその関数の中で使う作業用の変数を
グローバル変数にしてるんだったらとんでもないと思うけどね。
483:Name_Not_Found
08/06/23 00:26:45
関数使わない方が速いっていう利点はあるよね。
484:467-470
08/06/23 01:13:26 DzJ84Pjg
>>471でやっても>>473でやっても駄目でした。
原因はiやjではなく別にあるような…。
485:Name_Not_Found
08/06/23 01:15:03
糞ソースを見るとイラっとする俺はもう駄目かもしれん
486:Name_Not_Found
08/06/23 02:17:08 uInEyN34
>>484
女子高生です
あなたセンスがないからもうやめた方がいいよ
487:Name_Not_Found
08/06/23 02:20:33
>>484
漏れも気になって再現してみたがやっぱり最初はだめだな。
デバッカで追っかけてみたが、よくわからんかった。
気持ち悪くて眠れんのだが。
488:Name_Not_Found
08/06/23 03:13:19 rQMNNzo3
オブジェクトの下にあるオブジェクト(この例ではAjax.Delegate)が存在するかどうかを判定して分岐するにはどうすればよいのでしょうか。
以下のソースをFirefox 3で実行してみると、アラートで[Object Object]と表示され、Ajax.Delegateオブジェクトが存在していることが確認されるのですが、
なぜかf(!Ajax.Delegete){}が実行され、中のalert(Ajax.Delegete);の結果”undefined”がアラートされます。
if(!Ajax){
var Ajax=new Object;
}
Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
alert(Ajax.Delegate);
if(!Ajax.Delegete){
alert(Ajax.Delegete);
Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
}
489:Name_Not_Found
08/06/23 03:50:21
スペル
490:Name_Not_Found
08/06/23 04:46:23
>>489
ありがとうございます。
1時間半の苦労がorz
491:Name_Not_Found
08/06/23 05:34:06 j4JVz+ZB
>>488
こういうミスって識別子の補完機能があるIDEつかっていれば
かなり少なくできると思うんだけど、Javascript だと
どういう環境があるの?みんなただのエディタ使っているの?
俺はメモ帳とかサクラエディタを使っている。
492:Name_Not_Found
08/06/23 06:24:24
質問です。
セレクトメニューで選択された項目に対して、変数に文字列を代入するにはどうしたらいいでしょうか。
493:Name_Not_Found
08/06/23 06:53:39
>>491
DashCodeに補完機能あると嬉しいんだけどなぁ
Xcodeには補完機能あるのにDashCodeにはない(´・ω・`)
Apple頼むよ…
Aptena Studioに補完機能あったかもしれないがEclipse系はJava独特のもっさり感があるのでどうも好きになれん。
URLリンク(www.panic.com)
こういうの買えってことなんだろなぁ
>>492
URLリンク(homepage3.nifty.com)
494:Name_Not_Found
08/06/23 06:58:29
ちょい訂正
よくぐぐってみたらcodaは補完いまいちだそうな
495:492
08/06/23 07:09:15
>>493
ありがとうございます。しかし例がなぜCCS・・・
496:Name_Not_Found
08/06/23 11:32:28
>>484
iとjを持ち回したら?
>>471が言ってる通りforの中でvarで宣言、
loadXMLFileを呼び出すときにiとjも渡す。
loadXMLFileの中でhttpObjのプロパティにセット
function loadXMLFile(fName, i, j){
httpObj = createXMLHttpRequest(displayData);
httpObj.searchData = {i:i,j:j};
displayData()の先頭でiとjを受け取る
var i = httpObj.searchData.i;
var j = httpObj.searchData.j;
ただ、そもそもhtmlの中に直書きしてある「javascript 2ch.net」とかを
javascriptのコードの中に書いてる時点でどうかと思うので全体的に見直した方が良いかも
497:Name_Not_Found
08/06/23 11:33:11
補完やツールチップ表示なら、Komodoでできるだろうな。デフォでは出来ないから、拡張を取ってくるか作るかせにゃならんだろうが、作るのはJavaScriptだから何とかなるだろ。
498:Name_Not_Found
08/06/23 11:56:35
emacsやxyzzyなら補完なんて当たり前にできるけどな。
499:Name_Not_Found
08/06/23 14:49:36
>>498
emacsって補完できるのかw
Mac OS Xに付いてきてるけど使ったこと無い;;
試してみます
500:Name_Not_Found
08/06/23 14:55:34
URLリンク(www.webhtm.net)
ぐぐったらviにもあった。知らなかった…
viメインにするかな…
501:Name_Not_Found
08/06/23 15:23:14
xyzzy の actionscript-mode をjavascript用にデータ変更すれば最強だろ。
502:sage
08/06/23 17:21:03 VigVkU4t
教えて下さい。
フォーム内のチェックボックスをラジオボタンのように常に1つだけ選択出来るようにしたいのですが、全く方法がわかりません。
親切な方お願いします。
503:Name_Not_Found
08/06/23 17:33:37
>>502
FF3/Safari3.1で確認。Win起動するの面倒くさいのでIEでは未確認。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "URLリンク(www.w3.org)">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')">
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
504:Name_Not_Found
08/06/23 17:38:16
>>503補足
"常に1つだけ"というのが、0個選択も許さないって意味だったら↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "URLリンク(www.w3.org)">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(!document.f[c].checked){
alert("最低1個選択してください。");
document.f[c].checked=true;
}
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')" checked>
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
505:Name_Not_Found
08/06/23 17:41:58
>>502
チェックボックスのonclickハンドラでチェックボックスがONに
なるのを検出する。で、その時自分以外のを全部OFFに変更する。
この説明で分からないなら勉強してね(ここは全部書いてあげる
スレではないので)。
506:Name_Not_Found
08/06/23 17:42:44
げげ…リロードしてなかったorz
507:Name_Not_Found
08/06/23 18:11:12
>>502
すなおに radio を使え。
>>503-504
NAME属性値が異なっているが、それは>>502がやりたいことなのか?
508:502
08/06/23 18:20:34
ありがとございます。
配列作ってってとこまではわかったんですが、渡した引数との整合(?)で躓いていたので本当に助かりました。
もっと勉強してきます。
509:Name_Not_Found
08/06/23 18:24:58
>>507
ググってみたらcheckboxも同じnameで配列でいけるのか;;知らなかった
>>504をする場合は素直にradio使った方が良いと思うが、>>503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。
510:Name_Not_Found
08/06/23 18:58:20 5YaKTodd
JSONで定義した無名ハッシュのキーリストを取り出すには
どういうメソッド/方法を使えばいいんでしょうか。
Perlのkeysみたいなのがないかなと・・・
最悪、リストを2つ用意してっていうのも考えてはいます。
511:Name_Not_Found
08/06/23 19:11:40
と思ったらまんまkeysでいいのね。ごめん。
512:Name_Not_Found
08/06/23 20:12:23
>>511
それはどこかに定義されているのだろうな。
例えば Firebug の console には keys() も values() もあるが、言うまでもなくページからは使えない。
513:Name_Not_Found
08/06/23 20:28:19
>>509
> 503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。
もし <form> の中に name="XXX" だけしかコントロールが無いのなら、JSは要らない。
デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。
JSが必要な状況は、
* <form> で囲まれていて、他の name 属性値を持つコントロールがある
* <form>で囲まれていない
の2通りあるが、これも radio コントロールを使って、単純に、...checked=false すれば良い。
結局、radio を使うのが最易。
514:467-470
08/06/23 21:49:02 DzJ84Pjg
httpObj.open("GET", fName, true);
↓
httpObj.open("GET", fName, false);
このようにopenメソッドの第三引数をtrueからfalseに変えたらうまくいきました。
true … リクエストを送った時点で次の処理へ進む(非同期通信)
false … リクエストからの応答があるまで待ってから次の処理へ進む(同期通信)
やっぱり、iやjがローカル変数だとかグローバル変数だとかってのは関係なかったみたいです。
っとなると、trueではどう頑張っても無理ですか??
一応、>>496のやり方も試しましたがだめでした。
515:Name_Not_Found
08/06/23 23:52:37
このおっさんしつこいなぁ
516:Name_Not_Found
08/06/24 03:58:37
>>512
ご名答、Firebugでした。やっぱりブラウザにはないのね・・・
グリモンで使おうと思ったんだけど、とりあえず使わず済ませました。
Firebugを関数リファレンスと考えちゃいけないとわかったのも収穫。
517:Name_Not_Found
08/06/24 07:13:21
>>513
>デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。
resetボタンという手があったか
そうなると、radioで無理なのは選択できるのが0~2個とか0~3個とかのときだけになるか
大した行数じゃないしjavascript+checkboxでも良い気がするが好みかな
518:Name_Not_Found
08/06/24 08:31:55
>>517
UIの統一感という意味でも、単一項目しか選択出来ないものにはradioを使った方が良いのでは。
519:Name_Not_Found
08/06/25 06:48:50
Class内のattachEventに関して質問です。
<html><head><script>
this.eTest = function(){
this.prop = 100;
}
this.eTest.prototype.showProp = function(){
alert(this.prop);
}
this.eTest.prototype.setEvent1 = function(){
document.body.attachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.unsetEvent1 = function(){
document.body.detachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.setEvent2 = function(){
this.savedFunc = function(x){return function(){x.showProp()}}(this);
document.body.attachEvent("onclick",this.savedFunc);
}
this.eTest.prototype.unsetEvent2 = function(){
document.body.detachEvent("onclick",this.savedFunc);
}
var inst = new eTest();
</script></head><body>
<input type="button" value="setEvent1" onclick="inst.setEvent1()">
<input type="button" value="unsetEvent1" onclick="inst.unsetEvent1()">
<input type="button" value="setEvent2" onclick="inst.setEvent2()">
<input type="button" value="unsetEvent2" onclick="inst.unsetEvent2()">
</body></html>
1, unsetEvent1でイベント解除できないのはattachしたときの関数オブジェクトとは 別の関数オブジェクトだからという認識でいいんでしょうか?
2, こういった場合setEvent2のようにattachEventに渡す関数オブジェクトを保持しておき、detachEventに同じものを渡すというやり方で問題ありませんか?
3, メモリリークですが、detachした時点でメモリが解放されるということでいいですか?
4, 同じことを実現するのにベターな書き方はありますか?
520:Name_Not_Found
08/06/25 08:03:54
>>519
関数式(関数リテラル)は、そこを実行するごとに新しい関数
オブジェクトを生成することになっている。だから確かに
attachで渡したものをとっておいてdetachにもそれを渡すように
するのが正しそう(試してないけど)。メモリが解放されるのは
あくまでもガベージコレクションのタイミング。リークというのは
ガベージコレクションしても解放されなくなるという意味。
521:Name_Not_Found
08/06/25 10:04:09
ガベージコレクションがいつまでたっても呼び出せなくなるのがIEのリークなんじゃ?
522:Name_Not_Found
08/06/25 11:07:30
>>521
それは言い方がおかしいと思う。その言い方だとリークが起きたら
以後ガベージコレクションが起こらなくなるという意味になると
思うが、そしたらあっという間にメモリが足りなくなるだろう。
「そのリークしたオブジェクトについてガベージコレクション
されない」という意味なら、>>520 でいう「解放」がそれに
相当すると思う。まあ言葉遣いの問題なんだろうけど。
523:Name_Not_Found
08/06/25 11:20:49
デッドロックみたいなもんか
524:Name_Not_Found
08/06/25 12:04:12
>>522
横やりだけど何か違和感だったのでレス。
JavaScriptの場合「参照カウントが0になったらGCされる→メモリが解放される」
だから、「参照が循環するとGCされない(サイ本P.147)→メモリが解放されない」
なので、
>>520
> ガベージコレクションしても解放されなくなる
「GCしても」っていうところがちょっとおかしいかな?と。
525:Name_Not_Found
08/06/25 12:14:50
>>524
JavaScriptのみのオブジェクトの場合、循環参照があっても
解放される。これはマークスイープとかコピー方式のガベージ
コレクションを行っているわけだよね。一方、DOMツリーを経由
した循環参照はリークする。これはDOMツリーからたどれるオブジェクト
については参照カウントを維持していて、それが0より大きいと
「使用中」とみなされる。循環参照してしまうとどこからも指して
ないオブジェクト群でもカウントが1のまま残ってしまうというのが
このリークの本質。で、JavaScriptオブジェクトのガベージ
コレクションを実行しても、カウントが0より大きいものは回収
しないから「ガベージコレクションを実行しても解放されない」
となる。
単純なリファレンスカウントによるガベージコレクション「だけ」
の場合だと確かに>>524の言う通りだけど、この場合はそうじゃない
と理解しているんだがどうかな。
526:Name_Not_Found
08/06/25 12:43:32
俺は使い終わったオブジェクトは極力
delete オブジェクト名;
するようにしてる。
527:Name_Not_Found
08/06/25 12:46:14
GCの動作を理解してなかった
528:Name_Not_Found
08/06/25 18:15:09
勉強になる。てか、よく理解できてない俺はやっぱ自分で消そうと思った。
529:Name_Not_Found
08/06/25 21:13:05
>>526
それって
var obj = newObject;
・・・何か処理・・・
delete obj;
ってしてるってこと?
もしそうならnewObjectへの参照は消えてないよ
530:Name_Not_Found
08/06/25 22:52:29
>>529
参照?どういうことだろう…
var hoge=function(){};
req=new hoge;
req.moge="mogera";
alert(req.moge);
delete req;
alert(req.moge); //ここで、「Can't find variable: req」/「エラー: req is not defined」などのエラーが出る。
ってことは、参照が消えてるってことではないのかな…
531:Name_Not_Found
08/06/25 23:06:54
アホの会話はかみ合わない
532:Name_Not_Found
08/06/26 00:13:15
新規openについて質問します。
IE7+右クリック連携で現在開いているhtmlに対し、「選択範囲にあるURL全てを開く」という内容を考えています。
パラメータが違うURLを「別ウインドウの新しいタブ」にまとめて開きたいのですが、
//処理
for(条件で繰り返し)[
window_handle = window.open(url,target,'');
}
この形式ではIE自体は別プロセスになりますが、1つのタブ内で繰り返し開こうとしてしまいます。
(ポップアップブロックは無効に設定してます)
現在のウインドウ内でも良いので、新しいタブで各URLを開いていくような回避方法がありますでしょうか?
533:Name_Not_Found
08/06/26 00:21:10
targetの代わりに「'_blank'」を指定してみたらどうなる?
534:Name_Not_Found
08/06/26 00:25:04
>>533
for内の条件発生分だけ、IEが新規にopenしてしまいます。
535:Name_Not_Found
08/06/26 00:34:37
>>534
「_blank タブ」でぐぐれ。終了。
536:532
08/06/26 01:05:02
>>535
IE7の仕様ということみたいですので把握しましたです。
ありがとうございました。
537:Name_Not_Found
08/06/26 03:25:36
>>530
それなら消えるね
var req=new hoge; だと消えないというのを言いたかった
538:519
08/06/26 09:39:26
>>520
ありがとうござます。
メモリリークという言葉を使ったのがまずかったですが
クロージャでロックされたローカル変数はdetachしたら
解放されるのかどうかが知りたかっただけです。
プログラマはGCの正確なタイミングは知り得ませんが、
detachすればGCの対象になるのかどうかが知りたいという質問でした。
>>537
DontDelete属性の話でしょうか?
eval評価したスクリプト内のvar付き変数は
現状ではdeleteできるようですが。
ECMAScript 4ではDontDeleteつくらしいですね。
すいません話をattachEventに戻していいですか?
Class内でattachEventを使う場合は>>519よりもベターな書き方はありませんか?
みなさんどうしてるのか教えてください。
あとどの関数がどのイベントにattachされているかを知ることはできますか?
自分で管理するしかない?
539:Name_Not_Found
08/06/26 10:18:57
ベターな書き方と言われても、自分のインスタンスへの参照が欲しいなら
方法はそれくらいしか無いと思うけどなぁ
bindすれば少し読みやすくなるかと
イベント発生時の動作をあとから切り替えたいということなら
eTest.prototype.setEvent1 = function() {
document.body.attachEvent("onclick", (function(x) {
return function() { return x.currentFunc.apply(x, arguments); }
})(this));
};
これでcurrentFuncをすりかえるだけでいい
540:Name_Not_Found
08/06/26 14:17:12
質問いたします。
下記のように2ページ先のフォームにあらかじめ用意しておいた値を
自動入力するスクリプトを組みたいのですが何か良いアイデアは有りませんでしょうか。
IDやパスやフォーム入力値を埋め込んだ自PCのhtml "スタートページ"
↓
↓
企業のログインページ ← "スタートページ"からonloadでログイン
↓
↓
企業のフォームページ ← "スタートページ"のフォーム入力値をセット(この方法が思いつかない)
541:Name_Not_Found
08/06/26 14:42:41
>>540
うん、なるほどね。
あんたがやりたがっていることには企業のなんたらIDを取得しようとそ
の攻略法に血道をあげて研究に余念のない悪の諸先輩方がいますよ。
ま、これはその初歩も初歩のかわいい手口ってとこかな。違いは、あん
たのがピンポイントで悪の諸先輩方のがランダムで攻撃して来るってと
こくらいじゃない。ここでは>>1の回答拒否に当たるかも。
542:Name_Not_Found
08/06/26 14:48:19
>>541
勝手に悪者扱いされて心外なのですが、どうすればなんたらIDとやらを取得する話になるのでしょうかね。
543:Name_Not_Found
08/06/26 15:28:15
>>541
日本語でおk
>>542
エラーくらい読めカス
544:Name_Not_Found
08/06/26 16:07:30
>>543
勝手にカス扱いされて心外なのですが、どうすればエラー出るんでしょうかね。
知ってたら教えてもらえませんか。
545:Name_Not_Found
08/06/26 16:41:07
>>544
てめーのブラウザ名でも添えてggrks
546:Name_Not_Found
08/06/26 16:48:48
URLリンク(detail.chiebukuro.yahoo.co.jp)
547:Name_Not_Found
08/06/26 17:23:24
システムテストか運用時の定期的な動作テストの為か何かと思うが、
さすがにこのご時世で特に説明も無く>>540のように書かれたら、
胡散臭く思うのも仕方無い、というか疑って当然。
548:Name_Not_Found
08/06/26 18:27:26
>>544
とりあえず何でそういうことをやりたいか書いてみたら?
同じ方法でなくともやりたいことはgreasemonkeyとかでできるかもだし
549:Name_Not_Found
08/06/26 22:14:07
>>548
できるかもというか、できるだろというか、やってるよ俺は。
IDマネージャなどを使うより便利。gm_scriptsディレクトリはSVN管理してる。
一般にはそういう拡張(アドオン)を入れるのが手軽なんだろうな。
言うまでもないだろうが、実害が発生し得るカード情報などは、全部手入力だけどな。
550:Name_Not_Found
08/06/26 22:15:35
マクロ組めばいいだろっていう
551:Name_Not_Found
08/06/27 09:31:52
おしえてくだされ。参考にしているスクリプトに以下のような部分が
あるんですが、if文の中のびっくりマーク二つはどういう意味に
なるんでしょうか?一つだと分かるんですが。ググっても分から
ないのでお願いします。
var title_nodes = document.getElementById("btAsinTitle");
if(!!title_nodes){
552:Name_Not_Found
08/06/27 09:46:20
>>551
単なるtypoだろ
553:Name_Not_Found
08/06/27 09:50:20
>>551
真偽値に変換するため
ちなみにifの場合は勝手に判断してくれるから必要ない
554:519
08/06/27 12:14:35
>>539
便利な書き方ですね。参考になります。
イベントを中央管理してクロージャなしで書けそうです。
試行錯誤中ですがなんとかなりそうな雰囲気
555:Name_Not_Found
08/06/27 13:07:20
>>554
参考にしたいのでできたらサンプル見せてもらえませんか
556:Name_Not_Found
08/06/27 15:52:50 iNHOA/2z
あるボタンのonclickに対してイベントを2つ登録して
最初に登録されたイベントの結果によって
次に登録してあるイベントを実行したりしなかったりという制御をしたいのですが
どの様にすればよいのでしょうか?
557:Name_Not_Found
08/06/27 15:55:04
>>556
そのサンプル書いてみて。
558:Name_Not_Found
08/06/27 15:55:53
>>556
できたらサンプル見せてもらえませんか
559:Name_Not_Found
08/06/27 15:56:55
>>557
書けたら質問しないだろ
560:556
08/06/27 16:00:19 iNHOA/2z
<html>
<head>
<script type="text/javascript">
function method1() {
if (confirm("method2を阻止する?")) {
// ここでmethod2の実行を阻止したい。
} else {
;
}
}
function method2() {
alert("method2.");
}
window.onload = function () {
document.getElementById("buttonId").attachEvent("onclick", method2);
document.getElementById("buttonId").attachEvent("onclick", method1);
}
</script>
</head>
<body>
<form>
<input type="button" value="button" id="buttonId">
</form>
</body>
</html>
561:Name_Not_Found
08/06/27 16:06:03
>>557-558
なんなのこいつら
日本語も読めない奴は回線切って首吊れよ
562:Name_Not_Found
08/06/27 16:13:33
何故2つ割り当てるのか分からない
563:Name_Not_Found
08/06/27 16:22:11
>>561
どこまで書けるかってのを知りたかったんじゃないのか
564:Name_Not_Found
08/06/27 16:30:33
>>563
それを知って何になる?
565:Name_Not_Found
08/06/27 17:19:26
IE専なんて試す気にもならないけどこんなところか
function Util(id, type) {
this.obj = typeof id == 'string' ? document.getElementById(id) : id;
if (this.obj) throw 'ハァ(゚д゚)?';
if (!type) throw 'ハァ(゚д゚)??';
this.work = [];
this.obj.attachEvent(type, (function(x) {
var a = x.work;
for (var i = 0, current; current = a[i]; i++) {
if (a[i].call(x.obj)) return;
}
})(this));
}
Util.prototype = {
attach: function(listener, index) {
if (isNaN(index = Number(index))) return this.work.splice(index, 0, listener);
if (typeof listener != 'function') return false;
return this.work.push(listener);
},
detach: function(listener) {
if (typeof listener != 'function') return false;
var i = this.work.indexOf(listener);
if (i < 0) return false;
this.work.splice(i, 1);
return true;
}
};
566:Name_Not_Found
08/06/27 17:19:46
var hogeClick = new Util('hoge', 'onclick');
で hoge のクリックを管理するオブジェクトができる
hogeClick.attach(function() {
return !confirm('バカなの?死ぬの?'); // false を返すとこれより後をキャンセル
})
hogeClick.attach(function() {
alert('そうかい');
})
567:Name_Not_Found
08/06/27 17:23:45
見直してたら間違いがあった
9行目
if (a[i].call(x.obj)) return; → if (!a[i].call(x.obj)) break;
568:556
08/06/27 18:00:25 iNHOA/2z
動かしてみて試させていただきました。
> if (this.obj) throw 'ハァ(゚д゚)?';
は
if (!this.obj) throw 'ハァ(゚д゚)?';
に直したんですがこれでよいのですか?
> for (var i = 0, current; current = a[i]; i++) {
> if (!a[i].call(x.obj)) break;
> }
この辺りで、「種類が一致しません」とエラーがでました。
どうやったらエラーを取り除けるのかわかりませんでした。
569:Name_Not_Found
08/06/27 18:35:02
>>568
あまりにも酷いから書きなおしますごめんなさいごめ(ry
570:Name_Not_Found
08/06/27 18:44:33
>>561
|>>557-558
|なんなのこいつら
|日本語も読めない奴は回線切って首吊れよ
ってあんた「なんなの」って部分をちゃんとした日本語で説
明してみなよ。拝見するから。結果によっては、てめえで説
明もできねえようなら、人の批評をするなボケって話だろ。
571:Name_Not_Found
08/06/27 18:47:46
>>568
これで動いた。type から on は削っといた
function Util(id, type) {
this.obj = typeof id == 'string' ? document.getElementById(id) : id;
if (!this.obj) throw 'ハァ(゚д゚)?';
if (typeof type != 'string') throw 'ハァ(゚д゚)??';
this.work = [];
this.obj.attachEvent('on' + type, (function(x) {
return function() {
var a = x.work;
for (var i = 0, current; current = a[i]; i++) {
if (!current.call(x.obj)) break;
}
};
})(this));
}
572:Name_Not_Found
08/06/27 18:48:59
Util.prototype = {
attach: function(listener, index) {
if (typeof listener != 'function') return false;
if (!isNaN(index = Number(index))) {
this.work.splice(index, 0, listener);
return index;
}
return this.work.push(listener);
},
detach: function(listener) {
if (typeof listener != 'function') return false;
var i = this.work.indexOf(listener);
if (i < 0) return false;
this.work.splice(i, 1);
return true;
}
};
function init() {
var hogeClick = new Util('hoge', 'click');
hogeClick.attach(function() {
return !confirm('バカなの?死ぬの?');
});
hogeClick.attach(function() {
alert('そうかい');
});
}
>>570
結局お前はなんの役にも立ってないだろ
無駄なレスすんな
573:Name_Not_Found
08/06/27 18:50:09
おいおい笑とけ笑とけ
574:Name_Not_Found
08/06/27 20:48:19
バブルするイベントタイプは、アホ外人が言うイベントデリゲーションを使え。
575:556
08/06/27 21:16:39 iNHOA/2z
>> 571
動作確認しました
ちゃんとキャンセルできました
まさにこの動きを探してたんです
自分でイベントの管理をするのですね
まだ私にはレベルの高い事だったので、とても勉強になりました
ありがとうございます
576:551
08/06/27 22:29:54
>>552 >>553
thanx!
577:Name_Not_Found
08/06/28 04:25:12
ある程度時間をおいてもう一度自分のコードを読むと、少し気持ちわるいとこが見つかるよな
if (!current.call(x.obj)) break; → if (current.call(x.obj) === false) break;
attach: function(listener, index) {
if (typeof listener != 'function') return false;
if (isNaN(index = Number(index))) return this.work.push(listener);
this.work.splice(index, 0, listener);
return index;
},
578:Name_Not_Found
08/06/28 13:13:03 Xx7cgI9V
name="pic[0]"を指定してるアップロードフィールドがあって、そこに入力した中身を
空欄にするスクリプトを書いています(フィールドは"pic[9]"まで10個あります)
function clearUploadField(n){
uploadPic = "pic[" + n + "]";
//alert(n);
document.mujintouForm.elements[uploadPic].value = "";
}
これに対して onClick="javascript:clearUploadField(0)"とすると、
alertで0がただしく表示されるのに、IE6でフィールドがクリアされません
firefoxとsafariではクリアされます
どこに問題があるでしょうか? スクリプトエラーも表示しない状況です。
どなたかご意見よろしくお願いします
579:Name_Not_Found
08/06/28 13:41:18
◆◆◆◆◆◆◆◆◆毎日新聞社による日本人への誹謗中傷◆◆◆◆◆◆◆◆◆
・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する
※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです
◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
URLリンク(www9.atwiki.jp)
◆毎日新聞問題の情報集積wiki
URLリンク(www8.atwiki.jp)
つまり日本人なら
URLリンク(www.vipper.net)
580:Name_Not_Found
08/06/28 15:03:04 ZBMnA16M
リンクをクリックしたとき、そのリンクがサイト上にある全リンクの
何番目かを知るにはどうしたら良いでしょうか?
links[]を使って出来るんでしょうか
581:Name_Not_Found
08/06/28 15:10:43
>>580
知らんけどArray.prototypeのindexOfをcallしてみたら?
582:Name_Not_Found
08/06/28 15:40:35
>>581
ありがとうございます。それでやってみます。
583:Name_Not_Found
08/06/28 17:13:46 jlACv3h8
サイトがURLリンク(hoge.jp)、インデックスファイルがindex.phpだった場合、
トップページかを判別する方法として
location.href == "URLリンク(hoge.jp)" || location.href == "URLリンク(hoge.jp)"
よりもっと短くする方法はありますか
584:Name_Not_Found
08/06/28 17:26:01
/^http:\/\/(?:www\.)?hoge.jp\/?(?:$|index\.php$)/.test(location.href)
585:Name_Not_Found
08/06/28 17:27:12
>>583
var urip="URLリンク(hoge.jp)";
location.href == urip || location.href == urip+"index.php"
586:Name_Not_Found
08/06/28 17:28:00
/^http:\/\/(?:www\.)?hoge\.jp\/(?:index\.php)?$/.test(location.href)
587:Name_Not_Found
08/06/28 17:53:38
すみません、どなたか>>578についてもご意見ください
勝手言ってすみませんがよろしくお願いします
588:Name_Not_Found
08/06/28 19:04:44
>>587
function clearUploadField(n) {
var target = document.forms['mujintouForm'].elements['pic[' + n + ']'];
target.parentNode.insertBefore(target, target.nextSibling);
}
589:Name_Not_Found
08/06/28 20:31:09
>>587
その提出コードだけどそのままIE6で動いたよ。他に問題あるんじゃ
ないの?name属性が重複しているとか。
590:Name_Not_Found
08/06/28 21:02:01
ええと、まさかとは思うが「"hoge.jp"は"www.hoge.jp"の略」とか勘違いしている奴居ないよな?
591:Name_Not_Found
08/06/28 21:08:30
>>577
> f (!current.call(x.obj)) break; → if (current.call(x.obj) === false) break;
これってどうして===falseにしたの?
元のままじゃダメなの?
592:587
08/06/28 21:26:47 Xx7cgI9V
>>588-589
どうもです
>>589 動きましたか? 何がおかしいんだろう…と思って試したんですが、
空欄にする対象をアップロードフィールド(type="file")から
テキストエリア(type="text")にしたところIEでも空欄に出来ました。
type="file"じゃダメみたいです。
>>589さんが成功したのって、失礼ですが type="file" だったんでしょうか?
>>588
詳しい回答ありがとうございます
参考にしてDOMの勉強もしてみます ほんとにありがとう
593:Name_Not_Found
08/06/28 21:38:04
>>592
>>589です。試したのはtype="file"じゃなかった。ごめん。
昔からtype="file"の問題はいろいろあるんで自分はこれは
使えないシロモノだとずっと思ってる。
594:Name_Not_Found
08/06/28 21:43:57
使えないのはtype="file"ではなく、(ry
595:587
08/06/28 21:47:32
>>593
そうですか それがわかっただけでも良かったです
考えたら参照ボタン以外でアップロードフィールドに値を入れれたら危険ですね
submitボタンにスクリプトを仕込んだらどうしようもないかも…
ありがとうございました
596:Name_Not_Found
08/06/28 21:57:32
何がそうですねだ馬鹿。
597:Name_Not_Found
08/06/28 22:41:29
馬鹿って言った人が馬鹿なんだよね
598:Name_Not_Found
08/06/28 23:04:03 gI7skb5Z
>>585
短い変数に入れてしまえばいいのですね、ありがとうございます
599:Name_Not_Found
08/06/29 10:18:54
DOMContentLoadedが使えるブラウザならDOMContentLoadedのタイミングで、
使えないブラウザならonload(なり他のタイミングなりで)で
関数を実行させようとしているのですが
DOMContentLoadedが実装されているかどうかを調べるスマートな方法ってないでしょうか?
ブラウザとバージョンを調べれば簡単なんですがちょっとコードが見苦しくなるので…
600:Name_Not_Found
08/06/29 11:54:35
domready.js
601:Name_Not_Found
08/06/29 12:05:40
>>599
特定のイベントタイプ単体を実装しているか調べる方法が標準に定義されてないから
スマートな方法はないと思う
602:Name_Not_Found
08/06/29 13:33:48
parthInt(a - b)とparthInt(a) - parthInt(b)の違いって何でしょうか?
var a = "09"; var b = "01";
としたとき、後者の場合結果が-1になってしまいます。
603:Name_Not_Found
08/06/29 13:53:47
基数
604:Name_Not_Found
08/06/29 14:05:59
>>599
両方に登録して、DOMContentLoadedが実行されたら
フラグを立ててloadを実行させなくする方法がよく使われてるね。
605:Name_Not_Found
08/06/29 14:20:27
>>602
0で始まってるから自動的に8進で解釈されてるんだね。
parseInt('09', 10)
前者はNumber()による型変換と同じだね。
606:Name_Not_Found
08/06/29 16:23:39
>>604
目から鱗
存在確かめずに決め打ちでほうり込んでるように見える
プログラムをいくつか見たのですがそういうことだったのですね
ありがとうございました
607:Name_Not_Found
08/06/29 19:23:05
質問です。
ある16桁の乱数があって、
(例)qawsedrftgyhujik
その中に"sedr"及び"huji"いう文字が含まれているかどうか調べるには
どうしたらいいでしょうか。
608:Name_Not_Found
08/06/29 19:24:04
indexOf
609:Name_Not_Found
08/06/29 20:19:15
>>608
ありがとうございました。それでできるんですね
調べてみます。
610:Name_Not_Found
08/06/29 20:47:49
ある配列要素からその要素の前にいくつ要素があるか
調べる方法はないでしょうか
例えばa[3]の前にはa[0]、a[1]、a[2]の3つの要素あるのですが
それをa[3]から調べるにはどうしたらいいでしょうか
611:Name_Not_Found
08/06/29 21:06:35
疎な配列ということなら
for (var i = 0, res = 0; i < 3; i++) res += i in a;
612:Name_Not_Found
08/06/29 21:57:11
js> var a = [];
js> a[0] = 0;
0
js> a[3] = undefined;
js> a[6] = null;
null
js> a[9] = '';
js> Array.prototype['10'] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, 0), function (r) r + 1, 0);
0
js> Array.reduce(Array.slice(a, 0, 1), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 2), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 3), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 4), function (r) r + 1, 0);
2
js> Array.reduce(Array.slice(a, 0, 10), function (r) r + 1, 0);
4
js> Array.reduce(Array.slice(a, 0, 11), function (r) r + 1, 0);
4
js> a[10] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, 11), function (r) r + 1, 0);
5
613:Name_Not_Found
08/06/29 22:16:51
IEは早く氏ね
614:Name_Not_Found
08/06/29 23:55:43
>>613
IE8だけはがんばってほしいと思うよ
615:Name_Not_Found
08/06/30 05:48:35
Objectのプロパティを削除するときに
var o = {};
o.property = hoge;
o.property = null;
delete o.property;
とする必要はありますか?
null入れずに
delete o.propertyだけで十分?
616:Name_Not_Found
08/06/30 08:15:54
・テキストエディタ
・ドラッグした部分の文字色を青く変える機能付き
・ドラッグした部分の文字色を戻す機能付き
・そして、青く変わった部分の文字を切り出し(抽出して)出力する機能付き
・最後に、その出力した部分を保存もしくは、PHPで飛ばす
こんなテキストエディタを作りたいのですが、JavaScriptで作れますか?
色変える部分で挫折しそうです。文字サイズはとってこれますが、フォントカラーを取ってきて、出力や保存が出来ません
617:Name_Not_Found
08/06/30 09:57:58
>>615
Operaはバージョンによってはdeleteでエラー。この糞マイナーな手抜きブラウザを無視するなら、deleteだけでよい。
618:Name_Not_Found
08/06/30 10:54:03
>>616
色とかフォントとかいう時点でワープロやがな
619:Name_Not_Found
08/06/30 15:56:56
ブログ、掲示板などの編集画面など、ウェブ上のテキストエディタありますよね
あれをJavaScriiptを用いて作ってみたい、改変してみたいと考えています
一番ソースの見やすい、改変しやすいWebテキストエディタありますか?
オススメ等ありましたらお願いします
620:Name_Not_Found
08/06/30 16:09:15
>>617
じゃあ念のためnull入れるように習慣付けることにします。
621:Name_Not_Found
08/06/30 16:19:45
>>616
やりたいことは分かったけど質問内容から推察するに
挑戦するにはまだちょっと早いような・・・?
622:Name_Not_Found
08/06/30 16:32:16
>>621
テキスト解析だから、IQに大きく依存する。昨日今日プログラミングを始めた奴でも、IQが高ければいきなり作れるぞ。
623:Name_Not_Found
08/06/30 17:22:27
色分けなら\u02と\u03で囲んでそれぞれをspanの開始タグと終了タグに置換すればいい、ってばっちゃがいってた
624:Name_Not_Found
08/06/30 17:42:41
>>621
昨日今日プログラミングを始めたIQが高い奴がどんなものを
書くのか・書けるのかぜひ見たい。絶対に作ってUPしたらURI
教えてくれ。
625:Name_Not_Found
08/06/30 18:39:33
IQはどうでも良いが、頭の良い人間なら、
スクラッチから書くのでは無く、ググって似たようなサンプルを見つけ、
そのプログラミング言語に慣れていなくても正常に動作する物を書けそうだけどね。
626:Name_Not_Found
08/06/30 19:10:57
WordPress の投稿画面は結構よくできてる
ソースが読みやすいかどうかは知らね
627:610
08/06/30 21:11:38
>>611
調べるのを開始する配列要素が何番目か分からないので
その方法では駄目でした
628:Name_Not_Found
08/06/30 21:52:45
>>627
これは?
var a=[,'A',,'B','C',,'D','E'];
var res;
for (var i in a) {
if (a[i] == a[3]) {
res = i;
break;
}
}
alert(res);
629:Name_Not_Found
08/06/30 22:55:31
>>628
質問とはズレるが、それは疎な配列にならない。undefinedが割り当てられている。求められて仕方なくundefinedを返すのとは違う。というかそのコードを実行して気付かないのか。
>>627
抜けが無いのなら、Array.indexOf() で一発。無ければモジラのサイトのをコピペして使え。
抜けが在るのなら、Array.reduce() などと組み合わせる。無ければモジラのサイトのをコピペして使え。
もし===な比較が邪魔なら、別のArray.indexOfCastValue() を作れ。これもモジラのサイトのをコピペして微修正すればできる。
js> var v = false;
js> var a = [];
js> a[0] = 0;
0
js> a[3] = null;
null
js> a[6] = undefined;
js> a[9] = '';
js> a[12] = false;
false
js> a[15] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, Array.indexOf(a, v)), function (r) r + 1, 0);
4
630:Name_Not_Found
08/07/01 06:23:53
>>574
イベントデリゲーション興味があります。
onclickのようにバブルするイベントタイプの場合は、
個別のエレメントにハンドラ付けていくのは無駄が多すぎるので、
例えば各エレメントの上位オブジェクトのdocumentにひとつハンドラつけてれば
ページのどこでclickされようがイベントがバブルしてきて
documentのハンドラでイベントを受け取れると。
で、event.srcElementなりevent.targetなりでイベント発生元エレメントが
取得できるということですよね?
で、そこからどうするのかいまいち分からないんですが、
バブルしたイベントを受け取ったdocument.onclick = function(){ ... } 内で
イベント発生元エレメントの情報をもとに、あらかじめ構築しておいた対応テーブルを検索して
処理先を特定し処理を振り分ける―ということなんでしょうか?
今のところハンドラの数を減らすテクニックという理解でしかないんですが
メリットは他にもあるんですか?
631:Name_Not_Found
08/07/01 11:17:15
>>630
他にもあるというか、コードの読みやすさ・スピード面で有利な場面がいくらでもある
obj[event.target.value] とか想像しやすいと思う
まあ>>556のケースではバブリングなんて関係ないけど
632:Name_Not_Found
08/07/01 15:38:39
>>630
イベント対象となりえるエレメントを動的に追加/削除する場合にも、
イベントデリゲーションは有効だね。
>>631
<div id="itemRoot"><div id="item1">item1</div><div id="item2">item2</div></div>
のようにevent.target=イベント処理対象エレメントのような単純な構成なら、
スピード面でも有利かもしれないが、
item1に子エレメントが含まれるような場合には、
DOMツリーを遡って対象エレメントを確定する必要がある場合も考えられるので、
一概にスピード面で有利とも言えないのでは。
633:Name_Not_Found
08/07/01 16:53:10
>>632
処理先を特定し処理を振り分ける っていうのは前提として既に>>630で出てるからいいとして、
極端な例だけど elm.src = obj[event.target.title]
っていう場合、タイトルでswitchして・・・とかありえないわけで、メリット以前の問題だろ?
「そういう場面がいくらでもある」のは自明だし、子エレメントとかそんなことは言ってないよ
634:Name_Not_Found
08/07/01 16:55:44
>>540
URLリンク(www.sponichi.co.jp)
635:Name_Not_Found
08/07/01 20:43:02
テキストボックスをjavascriptで作成しました
そのテキストボックスの性能は、自分としては文句なしの出来でした
問題はそのテキストボックスへ入力した内容をどう他へ渡すかです
PHPのSubmit使おうにも、データの型がわからず、形式もわかりません
また、教本等も持っていなく、Web頼りだったのですが、サイトやお薦め教本ありませんか?
PHPスレで聞くべきか悩みましたけど、JavaScriptを用いたテキストボックスを使っているのでこちらで聞くことにしました
636:Name_Not_Found
08/07/01 21:06:34
その「文句なしの出来」の性能をもつテキストボックスを作成する
JavaScriptを是非ここに載せてもらいたい。
637:Name_Not_Found
08/07/01 21:17:36
いや、自分の想定通りに出来たという意味です
人様に見せれるようなモンじゃありません
638:Name_Not_Found
08/07/01 21:25:46
見せられる、だろ。すんごくバカに見えるよね。
639:Name_Not_Found
08/07/01 21:58:53
>>638
何だコイツ
640:Name_Not_Found
08/07/01 22:25:59
>>638
なんだこいつ
641:Name_Not_Found
08/07/01 22:33:12
>>638
何だコイツ
642:Name_Not_Found
08/07/01 23:14:16
>>638
どうしたんだオマエ
643:Name_Not_Found
08/07/01 23:25:09
>>639-642
寝ろ
644:Name_Not_Found
08/07/02 00:30:20
>>632
>イベント対象となりえるエレメントを動的に追加/削除する場合
なるほど。書き換える範囲が特定されている場合はその親エレメントに
ハンドラをつけていれば中身がどう変化しようと問題がないわけですね。
645:Name_Not_Found
08/07/02 01:02:54
グッナイ! < 欧米か!?
646:Name_Not_Found
08/07/02 01:40:11
>>639-642==637==635か
つ黄色い救急車
647:Name_Not_Found
08/07/02 02:15:07
>>633
正直日本語でおk過ぎて何を言いたいのか不明。
実際にイベントデリゲーションを利用した実装を行った事があるのなら、
event.targetのエレメントをそのまま使うようなケースの方が少ない、
あるいは対象となるエレメント全てに属性値などを設定するのも非現実的というのは判るだろうけど。
648:Name_Not_Found
08/07/02 03:33:13
横からすまんが
”日本語でおk過ぎて”とか、日本語としてどうなのよw
軽く解釈悩んだぜ
アホな文章を突っつく際でも、2ch独特な慣用句を捏ね回しちゃ反論の連鎖に繋がるよ。
649:Name_Not_Found
08/07/02 04:01:57 yG7Xr5yG
マルチになってしまいすみません。初心者スレから誘導されました。
この板も初心者なのでお許し下さい。
IDが違うのはアクセス規制かかってて、ダイヤルアップのためです。
本題ですが、ページ内リンクをアイフレーム内でやりたいのですが、
<a name>でやってみたところ、アイフレームはずれるわスムーズにリンク先に
飛ばないわと、とても使い物になりません。
これはどうやら仕様で、どうしようもない現象のようです。
そこで同じようなことをジャバスクリプトでやりたいのですが、
良いサンプルがあれば教えてください。
同一ページ内だけではなく、他ページからのリンクで記事までスクロール
してくれるものが良いのですが。
650:Name_Not_Found
08/07/02 09:45:09
言語をやってる以上なんであれ文法に拘束される言語の正規使用にはセ
ンシティブでありたいものだね。よくさ、日本語もロクにできないのが
英語でペラペラになりたいとか言ってるじゃん。母国語も満足に組み立
てられない奴がプロブラミングのシンタックスに厳しいというのはあり
得んと思う。
651:Name_Not_Found
08/07/02 10:23:32
板違い
652:519
08/07/02 15:15:28
>>555
できました。
それなりにしっかりしたものになったので「evtmgr.js」として公開することにしました。
URLさらします。
本体
URLリンク(itmst71.googlepages.com)
デモページ
URLリンク(itmst71.googlepages.com)
ドキュメント
URLリンク(itmst71.googlepages.com)
バグとかとんでもない勘違いとかあるかもしれませんが
653:Name_Not_Found
08/07/02 15:34:20
質問です。
document.write("<input>");
で作ったインプットボックスに何か入力を行うと、その後F5ボタンでページ更新をかけてもさっきの入力が残ってしまうのは避けられないのでしょうか?
最小再現コードは
<html>
<head>
</head>
<body>
<script type="text/javascript">document.write("<input value=\"\">");</script>
</body>
</html>
です。
<body onload="clear();">
とし、clear()内でinput.valueを消すようにしたら消えたのですが、なんとも納得のいかないところです。
654:Name_Not_Found
08/07/02 15:35:12
>>653
Firefox?
655:Name_Not_Found
08/07/02 15:37:11
あ、すいませんIEです。
どうもHTMLが更新されないと、キャッシュされるっぽい?です。
656:519
08/07/02 16:50:50
>>652
これじゃなんのことか分からないことに気づいたのでもう少し説明書いときます。
evtmgr.jsの特徴
・中央管理型イベントマネージャモジュール。
・登録イベントをイベントタイプや呼び出し関数などで検索可能。
・クラス定義コード内でクロージャを使用することなく
thisキーワードをそのままインスタンスへの参照としてイベント登録に使える。
・登録イベントを条件を指定して一括削除可能。
・ページアンロード時に全てのイベントを削除できるのでメモリリークしない。
・自動ガーベッジコレクション機能搭載。
・大体のブラウザで動く。
なんかおかしいところあったら指摘してくれると助かります。
よろしくお願いします。
657:Name_Not_Found
08/07/02 16:55:44
>>656
うん、なかなか便利だね。
658:Name_Not_Found
08/07/02 17:09:06 CkkLjqVE
FireFoxのマウスジェスチャアドオン用のスクリプトを書こうとしています
ジェスチャ実行時に(選択された)テキストなのかそれともリンクなのか判断するif文を作りたいのですが、
どうすればいいでしょうか?
659:Name_Not_Found
08/07/02 17:54:25
var o = new Hoge();
o.onKeyDown = function(c){省略};
クラスを生成後、一部のクラス関数をオーバーライドした上で
省略~ onkeydown="o.onKeyDown(this);" ~省略
のように使いたいのですが、可能でしょうか?
少なくとも上の書き方ではうまく動作しませんでしたが・・・
660:Name_Not_Found
08/07/02 21:31:16
省略部分を超能力で解析した限りは動くみたいだけど
<script>
var Hoge = function(){};
var o = new Hoge();
o.onKeyDown = function(c){ alert(c.value) };
</script>
<input type="text" value="test" onkeydown="o.onKeyDown(this);">
661:Name_Not_Found
08/07/03 13:03:45 Bn8vIwhr
window.location.reload(); で自動更新させてます。
これだとサイト全部がリロードされるのですが
インラインフレームの中だけ動かないようにするのは
どうしたらいいでしょうか?
662:Name_Not_Found
08/07/03 14:35:43
インラインフレームの中の呼び出しも添えてリロードすればよいのでは?
663:Name_Not_Found
08/07/04 00:11:14 BOkDcOnP
質問です。
URLリンク(www.hotajax.org)
この「ShowCase menu」を応用して画像のギャラリーページを作りたいのですが、
</div></div>で区切って2段に分けても、上下のメニューが連動してしまいます。
1ページ内で完全に切り離して動作させたいのですがどのようにしたら良いでしょうか?
よろしくお願いします。
664:Name_Not_Found
08/07/04 01:39:18
どうやってヒモ付けられているか考えながら読めドアホ。質問するようなことじゃねえだろ。ほんと、JS終わってんな。
665:Name_Not_Found
08/07/04 06:47:43
そうそう。そもそもWeb製作板にあることが間違ってる。
666:Name_Not_Found
08/07/04 10:16:25
if(664==DQN)alert('BINGO!!');
667:Name_Not_Found
08/07/04 11:11:02
>>665
JavaScript @ム板
スレリンク(tech板)
JavaScriptを教えてもらう @WebProg
スレリンク(php板)
668:Name_Not_Found
08/07/04 11:56:13
ム板ならこっちだろ
ECMAScript デス 3
スレリンク(tech板)
669:Name_Not_Found
08/07/04 12:01:53
BINGO!!
670:Name_Not_Found
08/07/04 13:49:53
>>667ー668
どっちのスレでも板違いって話しが出てるんだが…
とりあえず663をどうにかしてやれ
671:Name_Not_Found
08/07/04 14:46:19 qrZFyUzj
prototype.js使わないで、文字化けさせずにXMLHttpRequestでテキスト取得する方法ってありますか?
672:Name_Not_Found
08/07/04 15:08:02 y0weF7PE
曜日ごとに違うJSファイルを呼び出そうとしているのですが
document.writeの書き方が悪いらしく
"); // -->みたいな文字化け表示がおこってしまいます。
どうかお助けください。
<SCRIPT LANGUAGE="JavaScript">
<!--
dt = new Date( );
d=dt.getDay( );
if (d==0){ JSDoc="URLリンク(xxx.com)"}
if (d==1){ JSDoc="URLリンク(xxx.com)"}
if (d==2){ JSDoc="URLリンク(xxx.com)"}
if (d==3){ JSDoc="URLリンク(xxx.com)"}
if (d==4){ JSDoc="URLリンク(xxx.com)"}
if (d==5){ JSDoc="URLリンク(xxx.com)"}
if (d==6){ JSDoc="URLリンク(xxx.com)"}
document.write("<script src='+ JSDoc +'></script>");
// -->
</SCRIPT>
673:Name_Not_Found
08/07/04 15:09:08
誰かTinyMCEというJavascriptを使ったWYSIWYGエディタを使ってシステムを構築している人いませんか?
IE+IMEで最初に確定した全角文字列が、2番目の文字列を入力しようとすると消えるという事が多発しています。
これってどうにかならないのかな・・・ググってみると結構この症状が出てる人いるみたいだけど、解決策はなしorz
また、たまーにTinyMCEを適用したテキストエリアに文章を入れた後、登録(Submit)すると文章が全て消える、という事も起きます。
かなりBuggyなので使わないほうがいいのかな・・・。
674:Name_Not_Found
08/07/04 15:13:14
>>672
document.write('<script src="' + JSDoc + '"></script>');
675:Name_Not_Found
08/07/04 15:17:11
>>672
配列用いた方が楽。
dt = new Date();
d = dt.getDay();
js = ["日.js","月.js","火.js","水.js","木.js","金.js","土.js"];
JSDoc = js[d];
676:Name_Not_Found
08/07/04 15:22:31
>>675
こうすればもっと楽。ファイル名+=曜日にする
document.write('<script src="' + JSDoc + (new Date().getDay())'"></script>');
677:Name_Not_Found
08/07/04 15:25:54
>>676
意味わからん。
document.write('<script src="' + JSDoc + (new Date().getDay()) + '"></script>');
とりあえずこうだし、もしこれでやるなら月曜日.js1とかになると思うが。
678:Name_Not_Found
08/07/04 15:26:44 y0weF7PE
どうもありがとうございます。
早速試してみます。
679:Name_Not_Found
08/07/04 15:26:51
'<' + '/script>'
680:Name_Not_Found
08/07/04 16:03:43
>>672
ちゃんとelseを使えボンクラ。
681:Name_Not_Found
08/07/04 16:20:34
簡単なコードの問題だと人が群がる群がるw
いままでどこにいたの君たち
682:Name_Not_Found
08/07/04 16:52:51
>>671もお願いします
683:Name_Not_Found
08/07/04 16:56:11
>>682
ログ嫁
684:Name_Not_Found
08/07/04 17:34:05
>>670もお願いします
685:Name_Not_Found
08/07/04 17:46:02 sMXmNVPt
背景を操作するってどうしたらいいんでしょう?
既存の背景の画像のポジションを動かしたいんですが、以下だとダメみたいです
document.getElementById("tab").style.background-position = 0 -31;
cssのスレで聞いたほうが良いのかな? よろしくお願いします
686:Name_Not_Found
08/07/04 17:48:45
>>685
JavaScriptだとCSSの-が使えないので大文字になる
backgroundPosition
で検索すると結構サンプル出るよ。
687:Name_Not_Found
08/07/04 18:04:05
>>684
上段も下段もshowCaseってclassにしちゃってるんじゃないの?
どういう状況かわからないけど、上段と下段でclass名変えてあげれば上手くいかない?
688:Name_Not_Found
08/07/04 20:46:19
>>687
cssのコードをコピーしてclass名を「#showCaseContainer2」のように全てに2を付加して変えてみたところ
下段だけ動かなくなったのですが、Javascriptの方もコピーするんですか?
689:Name_Not_Found
08/07/04 21:22:45
>>688
あのさあ、何十時間あった?
そんだけありゃあ、意味が分からなくとも、全文字を読めただろ。
どことどこに関連性がありそうか、それでも気付かなかったのなら、質問しろ。