のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,490,719人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.100 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    151 : Name_Not - 2012/05/09(水) 20:32:22.53 ID:??? (+3,-30,-43)
    var __s = '';
    document.open = document.close = function() {
     __s = '';
    }
    document.write = function(s) {
     document.body.innerHTML = __s+s;
    }
    152 : Name_Not - 2012/05/09(水) 20:45:49.02 ID:??? (+79,+24,-45)
    innerHTMLってその場にそれだけ書いて動くの?
    元々あるタグの操作とかでしょ?

    document.writeはいきなり書いても出力できるよね。

    forでループさせてtableタグを一気に書きたい場合とかはどうするんでしょうか?
    153 : Name_Not - 2012/05/09(水) 20:55:32.51 ID:??? (-2,-30,-56)
    document.body.innerHTML = '<table>';
    document.body.innerHTML += '<tr>';
    154 : 142 - 2012/05/09(水) 21:02:49.29 ID:??? (+7,-30,-115)
    (親フレーム)
    <title name="t1">フレーム使用例</title>
    ・・・
    <frameset rows="100,*">
    <frame src="fm3.html" name="ue">
    <frameset cols="150,*">
    <frame src="fm1.html" name="hidari">
    <frame src="fm2.html" name="migi">
    </frameset>

    (fm3.html)
    parent.document.getElementById("t1").value = "test frame";


    ではないんでしょうか?
    普通にtitleで書いても動かないです・・・
    155 : Name_Not - 2012/05/09(水) 21:05:00.80 ID:??? (-2,-29,-11)
    getElementById
    156 : Name_Not - 2012/05/09(水) 21:05:20.09 ID:??? (+114,+29,-6)
    >>148
    それは単にそこのサイトの人の見解でしょw
    157 : Name_Not - 2012/05/09(水) 21:06:41.95 ID:??? (+62,+29,-1)
    なるほど
    それで>>142のような馬鹿な質問ができるのか
    158 : Name_Not - 2012/05/09(水) 21:08:02.81 ID:??? (-3,-30,-82)
    >>124
    ありがとうございます。できました。
    ただ、ちょっと分からないことがあります。
    document.body.getElementsByTagName('p') は大丈夫なのに、
    document.body.getElementById('data1') はダメなんですね。
    なぜダメなんでしょうか。

    それと、追加で質問なのですが、
    <div class="data1">の中を取得したい場合はライブラリ等の関数が
    必要になるということでしょうか。
    159 : Name_Not - 2012/05/09(水) 21:11:39.95 ID:??? (+63,+29,-9)
    >>158
    どうダメなのかが分からない
    ライブラリなど?これも意味不明
    >>124に書いてあるじゃないの
    160 : Name_Not - 2012/05/09(水) 21:15:19.81 ID:??? (+1,-30,-22)
    >155
    間違えました。
    古いのコピった・・

    親フレームは
    <title id="t1">フレーム使用例</title>

    です
    161 : Name_Not - 2012/05/09(水) 21:22:42.66 ID:??? (+78,+24,-24)
    >>156
    コンストラクタをapply出来ないってことだろ?
    確かにどう転んでも言語仕様上無理だな
    162 : Name_Not - 2012/05/09(水) 21:31:30.59 ID:??? (+22,-30,-29)
    >>185
    IDは一意だから、DocumentにしかgetElementByIdは無い

    getElementsByClassName
    163 : Name_Not - 2012/05/09(水) 21:32:09.44 ID:??? (+62,-13,-32)
    >161
    コンストラクタそのものはapplyできないが
    振る舞いだけ似せるなら実装可能
    164 : 162 - 2012/05/09(水) 21:32:10.55 ID:??? (+36,+3,+2)
    165 : Name_Not - 2012/05/09(水) 21:33:30.33 ID:??? (+65,+29,-32)
    >>163
    中途半端な実装は避けるべきだぞ。タコ野郎。
    167 : 148 - 2012/05/09(水) 21:43:13.24 ID:vGwzdzW3 (+29,+19,-28)
    >>156
    そのサイトの管理人と同じ見解だから紹介したまでです。
    希望があるとすれば eval() や new Function() でしょうか。

    そもそも、あなたはどう考えているのですか?
    168 : Name_Not - 2012/05/09(水) 21:46:42.66 ID:??? (+45,+6,-25)
    ライブラリは必須ではないが
    >>152のようなtableの自動作成
    みたいなのはjQueryを使えばエレガントに書ける
    169 : Name_Not - 2012/05/09(水) 21:50:46.64 ID:??? (+35,+12,-15)
    サーバーサイドでやれよ
    170 : think49 - 2012/05/09(水) 21:52:10.96 ID:??? (+17,-30,-119)
    >>158
    > document.body.getElementsByTagName('p') は大丈夫なのに、
    > document.body.getElementById('data1') はダメなんですね。
    > なぜダメなんでしょうか。
    DOM L2 Core によると、Element#getElementsByTagName はありますが、Element#getElementById はない為だと思われます。
    http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#ID-745549614
    171 : Name_Not - 2012/05/09(水) 22:01:45.04 ID:??? (+5,-29,-59)
    >>163
    >>129の目的は「Function::bindメソッド互換の関数をIE8以下でも使えるように実装する」なんだから振る舞いだけ似せても仕方ないんじゃないかな
    172 : Name_Not - 2012/05/09(水) 22:06:25.90 ID:??? (+8,-29,-99)
    >>162>>166>>170
    ありがとうございます。
    良く分かりました。この部分はきっと厳密に作られた仕様を忠実に守ってるんですね。
    >>170
    確かにインタフェースDocumentのほうにだけgetElementByIdがありました。
    http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#i-Document

    getElementsByClassNameも分かりました。
    ですが、IE8以前には存在しないということで、そういった古いブラウザを考慮する場合は
    何か関数を作ってやらないと取得できない、そういう理解で正しいでしょうか?
    173 : Name_Not - 2012/05/09(水) 22:07:08.35 ID:??? (+15,-30,-87)
    >>158
    var nodes = document.getElementById('name1').getElementsByTagName('p');
    for ( var i = 0; i < nodes.length; ++i ) {
     // nodes[i].childNodes[0].data がテキスト。表示するなり配列にpushするなりご自由に。
    }
    174 : think49 - 2012/05/09(水) 22:16:24.86 ID:??? (+40,-30,-156)
    >>172
    IE8+ には querySelector が存在します。
    getElementsByClassName と違って not-live ですが、live である必要性がない場合には扱いやすい API です。
    IE7- にはjQuery等のライブラリを利用するか、Selectors API や getElementsByClassName を自作するか、IE7- だけ処理を分けるしかないですね。
    # ちなみに、getElementsByClassName は live ですので完全な互換性を持つライブラリは作成できません。
    176 : 175 - 2012/05/09(水) 22:20:44.38 ID:zjeI0ZJH (-20,+29,-4)
    あああああああリロードしてなかったー
    すみません…
    177 : Name_Not - 2012/05/09(水) 22:25:29.16 ID:??? (+9,-30,-119)
    >>159
    説明不足ですみませんでした。
    例えばOperaでは、このようなエラーが出たのです。
    Uncaught exception: TypeError: 'document.body.getElementById' is not a function
    >>173
    例をありがとうございます。
    まだ試してみてませんが、nodes[i].childNodes[0].dataは大変参考になります。
    今までは
    F='innerText'in document.body;
    としておいて、
    F?nodes[i].innerText:nodes[i].textContent
    のようにテキストを得ていました。
    178 : Name_Not - 2012/05/09(水) 22:58:37.37 ID:??? (+61,-30,-142)
    【やりたいこと】
    要素の背景色(background)を1秒ごとに、黄色⇔灰色のように
    変更して点滅のような効果を出したいです。

    【試したこと】
    デフォルトではcssで黄色(#FF0)に設定。

    jqueryのsetIntervalと、if文を組み合わせて
    flagが0なら灰色(#CCC)に変更して、flagを1にする。
    次のif分岐の時は、elseの方に入るので、黄色(#FF0)に変更してflagを0にする…
    というような方法。

    【結果】
    灰色に変更してから次の黄色に変更の動作に進んでくれません。。。

    【ソース】
    http://jsdo.it/hirorih/fhhc

    【ひとこと】
    お知恵おかしくださいませ。
    179 : Name_Not - 2012/05/09(水) 23:04:15.32 ID:??? (+68,+29,-97)
    >>174
    liveとは、書き換えられた内容も反映されているということですね。
    今やっていることはliveである必要がないので、いろいろな方法を検討してみます。
    詳しい解説をありがとうございました。
    180 : Name_Not - 2012/05/09(水) 23:08:08.54 ID:??? (-7,-19,+0)
    >>178
    なにそれ迷惑スクリプト
    181 : Name_Not - 2012/05/09(水) 23:09:22.27 ID:??? (-1,-29,-5)
    >>154>>160です

    parent.document.title.value = "test frame";
    でも動きませんでした・・
    182 : Name_Not - 2012/05/09(水) 23:09:46.66 ID:jXlSiiQJ (-2,+14,-19)
    >>180
    ポケモンフラッシュをjsで移植してるんじゃね?
    183 : Name_Not - 2012/05/09(水) 23:13:19.63 ID:??? (+3,-29,-10)
    >>178
    14,15行を入れ替えれば望み通りにはなるよ。
    var flag=0;
    setInterval(function(){

    184 : Name_Not - 2012/05/09(水) 23:13:42.50 ID:??? (+2,-30,-49)
    >>178
    var flag=0 を setInterval の外に出す。
    $('.hoge') も出した方がいいが。

    それから、馬鹿の雑音は気にすんな。
    185 : Name_Not - 2012/05/09(水) 23:28:46.14 ID:??? (+122,+29,-41)
    >>178
    一応補足しておきますが、blink 的な挙動は迷惑スクリプトと認識される場合があります。
    嫌われる可能性があるという意味ではお勧め出来ませんね…。
    186 : Name_Not - 2012/05/09(水) 23:29:32.35 ID:??? (-1,-29,-17)
    >>183
    >>184

    ありがとうございます!できましたーヽ(*´∀`)ノ
    はい、雑音は気にしませんw
    187 : Name_Not - 2012/05/09(水) 23:31:21.85 ID:??? (+73,+29,+0)
    >>185

    アドバイスありがとうございます。
    使い所気をつけます!
    188 : Name_Not - 2012/05/10(木) 00:01:38.97 ID:??? (+22,+4,-1)
    自演乙
    189 : Name_Not - 2012/05/10(木) 00:10:20.90 ID:??? (+57,+29,-2)
    でも>>182ってやろうと思えばできるよな
    190 : Name_Not - 2012/05/10(木) 00:18:33.21 ID:??? (+46,+28,+0)
    でっていう
    192 : Name_Not - 2012/05/10(木) 00:31:10.67 ID:??? (+7,-30,-10)
    >>89ではないが、
    Number("Infinity") → NaN
    Number("無限大") → NaN
    Number("∞") → NaN
    Number("ゼロ") → NaN
    193 : Name_Not - 2012/05/10(木) 00:32:34.62 ID:??? (+52,+29,-3)
    やっべ俺ゲーム作る時全無視だ
    194 : Name_Not - 2012/05/10(木) 00:46:48.99 ID:??? (-11,-30,-47)
    >>191
    1秒間に3回は光過敏性発作を引き起こさない条件か
    http://www.jsa.or.jp/stdz/instac/commitee-acc/W3C-WCAG/WCAG20/index.html#seizure
    2.2.2 ではもっと広範な条件になってるな
    http://www.jsa.or.jp/stdz/instac/commitee-acc/W3C-WCAG/WCAG20/index.html#time-limits-pause
    195 : Name_Not - 2012/05/10(木) 11:29:14.74 ID:7rka9thL (+27,+29,-46)
    子供の頃、basicで画面の色を赤青緑マゼンタ…と変えるのをループさせると
    画面が白く見えることに気づいて、順番とか変えながらずっといじってたら
    ゲロ吐いて寝込んだことがあるのを思い出した

    関係あるのかなあ
    196 : Name_Not - 2012/05/10(木) 12:06:47.84 ID:7w3edLEq (-17,-30,-224)
    Javascriptで下記のベタ記述は動きますが、
    var pic1  = document.all("pic1");
    var pic2  = document.all("pic2");
    var pic3  = document.all("pic3");

    pic1.style.display  = "block";
    pic2.style.display  = "none";
    pic3.style.display  = "none";

    for文で回した記述は動きませんでした。
    For(i=1, i<=3, i++)
    {
    id="pic"+i;
    pic[i] = document.all(id);
    if(i>1){ pic[i].style.display = "block"; }
    else{ pic[i].style.display = "none"; }
    }

    何かいい方法はありますか?xmlファイルを読み出して
    画像の表示をしようとしています。
    197 : Name_Not - 2012/05/10(木) 12:17:16.64 ID:??? (+52,+29,-22)
    >>196
    連番の変数を作ったら勝手に配列になるとかあり得ないでしょ。
    picという配列を作ってそこに要素入れるようにすれば。
    198 : Name_Not - 2012/05/10(木) 12:18:57.55 ID:??? (+57,+29,-15)
    すまん、ちゃんと読んでなかった。そのfor文があってるのかとか
    外側で配列picを作っているのかとかエラー出てないのかとかを
    確認するべきかと。
    199 : Name_Not - 2012/05/10(木) 12:25:59.95 ID:??? (-6,-29,-19)
    pic[i]の内容は確認したか?
    200 : Name_Not - 2012/05/10(木) 13:13:18.69 ID:??? (-6,-29,-22)
    >>196
    動きませんじゃなくてエラーコード貼ろうぜ。
    For じゃなくて for だし、picの宣言は見当たらないし、まずはエラーを確認しないと。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について