元スレ+ JavaScript の質問用スレッド vol.100 +
JavaScript覧 / PC版 /みんなの評価 :
151 = :
var __s = '';
document.open = document.close = function() {
__s = '';
}
document.write = function(s) {
document.body.innerHTML = __s+s;
}
152 = :
innerHTMLってその場にそれだけ書いて動くの?
元々あるタグの操作とかでしょ?
document.writeはいきなり書いても出力できるよね。
forでループさせてtableタグを一気に書きたい場合とかはどうするんでしょうか?
154 = :
(親フレーム)
<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で書いても動かないです・・・
156 = :
>>148
それは単にそこのサイトの人の見解でしょw
157 = :
なるほど
それで>>142のような馬鹿な質問ができるのか
159 = :
>>158
どうダメなのかが分からない
ライブラリなど?これも意味不明
>>124に書いてあるじゃないの
160 = :
>155
間違えました。
古いのコピった・・
親フレームは
<title id="t1">フレーム使用例</title>
です
161 = :
>>156
コンストラクタをapply出来ないってことだろ?
確かにどう転んでも言語仕様上無理だな
162 = :
>>185
IDは一意だから、DocumentにしかgetElementByIdは無い
getElementsByClassName
163 = :
>161
コンストラクタそのものはapplyできないが
振る舞いだけ似せるなら実装可能
164 = :
165 = :
>>163
中途半端な実装は避けるべきだぞ。タコ野郎。
167 :
>>156
そのサイトの管理人と同じ見解だから紹介したまでです。
希望があるとすれば eval() や new Function() でしょうか。
そもそも、あなたはどう考えているのですか?
168 = :
ライブラリは必須ではないが
>>152のようなtableの自動作成
みたいなのはjQueryを使えばエレガントに書ける
169 = :
サーバーサイドでやれよ
170 = :
>>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 = :
>>163
>>129の目的は「Function::bindメソッド互換の関数をIE8以下でも使えるように実装する」なんだから振る舞いだけ似せても仕方ないんじゃないかな
172 = :
>>162>>166>>170
ありがとうございます。
良く分かりました。この部分はきっと厳密に作られた仕様を忠実に守ってるんですね。
>>170
確かにインタフェースDocumentのほうにだけgetElementByIdがありました。
http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#i-Document
getElementsByClassNameも分かりました。
ですが、IE8以前には存在しないということで、そういった古いブラウザを考慮する場合は
何か関数を作ってやらないと取得できない、そういう理解で正しいでしょうか?
173 = :
>>158
var nodes = document.getElementById('name1').getElementsByTagName('p');
for ( var i = 0; i < nodes.length; ++i ) {
// nodes[i].childNodes[0].data がテキスト。表示するなり配列にpushするなりご自由に。
}
174 = :
>>172
IE8+ には querySelector が存在します。
getElementsByClassName と違って not-live ですが、live である必要性がない場合には扱いやすい API です。
IE7- にはjQuery等のライブラリを利用するか、Selectors API や getElementsByClassName を自作するか、IE7- だけ処理を分けるしかないですね。
# ちなみに、getElementsByClassName は live ですので完全な互換性を持つライブラリは作成できません。
177 = :
>>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 = :
【やりたいこと】
要素の背景色(background)を1秒ごとに、黄色⇔灰色のように
変更して点滅のような効果を出したいです。
【試したこと】
デフォルトではcssで黄色(#FF0)に設定。
jqueryのsetIntervalと、if文を組み合わせて
flagが0なら灰色(#CCC)に変更して、flagを1にする。
次のif分岐の時は、elseの方に入るので、黄色(#FF0)に変更してflagを0にする…
というような方法。
【結果】
灰色に変更してから次の黄色に変更の動作に進んでくれません。。。
【ソース】
http://jsdo.it/hirorih/fhhc
【ひとこと】
お知恵おかしくださいませ。
179 = :
>>174
liveとは、書き換えられた内容も反映されているということですね。
今やっていることはliveである必要がないので、いろいろな方法を検討してみます。
詳しい解説をありがとうございました。
183 = :
>>178
14,15行を入れ替えれば望み通りにはなるよ。
var flag=0;
setInterval(function(){
184 = :
>>178
var flag=0 を setInterval の外に出す。
$('.hoge') も出した方がいいが。
それから、馬鹿の雑音は気にすんな。
185 = :
>>178
一応補足しておきますが、blink 的な挙動は迷惑スクリプトと認識される場合があります。
嫌われる可能性があるという意味ではお勧め出来ませんね…。
187 = :
>>185
アドバイスありがとうございます。
使い所気をつけます!
188 = :
自演乙
189 = :
でも>>182ってやろうと思えばできるよな
190 = :
でっていう
192 = :
>>89ではないが、
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
193 = :
やっべ俺ゲーム作る時全無視だ
195 :
子供の頃、basicで画面の色を赤青緑マゼンタ…と変えるのをループさせると
画面が白く見えることに気づいて、順番とか変えながらずっといじってたら
ゲロ吐いて寝込んだことがあるのを思い出した
関係あるのかなあ
197 = :
>>196
連番の変数を作ったら勝手に配列になるとかあり得ないでしょ。
picという配列を作ってそこに要素入れるようにすれば。
198 = :
すまん、ちゃんと読んでなかった。そのfor文があってるのかとか
外側で配列picを作っているのかとかエラー出てないのかとかを
確認するべきかと。
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.120 + (1002) - [97%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
トップメニューへ / →のくす牧場書庫について