元スレ+ JavaScript の質問用スレッド vol.76 +
JavaScript覧 / PC版 /みんなの評価 :
451 = :
>>450
なるほど、
㌧です
452 = :
>>439,442
ということは、documentオブジェクトにgetElementByIdがないか、
document.getElementById()の結果のオブジェクトにvalueがないんだろ
う。
id="hoge"の要素が複数あって、意図したものとは違う要素でも取れてい
るんじゃないの?
453 = :
>> 452
いや、解決は至って単純で、
hogehoge = document.getElementById("hoge").value;
<input id="hoge" type="text" />
とすればエラーが出なくなるんだわ。
「hoge =」→「hogehoge =」…つまり、id名と変数名を重複しなければ良いってだけ。
実際にいろいろなブラウザで動かしてみるとわかるよ。エラーになるのIEだけだから。
IE6はもちろん、最新のIE8でもエラーになるから認識してないっぽい。
あ、ちなみに、
var hoge = document.getElementById("hoge").value;
<input id="hoge" type="text" />
と、varを付けてローカル変数にすればエラーにならない。w
ほんと、IEだけは消えてなくなってほしいわ…。
454 = :
IEがdocument.hogeでdocument.getElementById('hoge')なのは結構有名だと思ったけど。
でもまあIEに限らずHTML内の名前はグローバルと思って設計したほうが安全だよ。
456 = :
んなこたあ法律相談板で訊け
457 = :
バカ自慢はいいからIEより先にお前が消えた方がいいよ
462 = :
切れる、切れないの問題じゃない。
切っていくべきなんだ。
463 = :
IE の id と名前空間絡みの話だけど、変数名との衝突だけでなく、メソッド名ともぶつかった気がする。
確か id に "submit" を持つ要素が存在すると、submit() を呼び出せなかった様な。
もう、おねむだから確認はしないけど。
464 :
記録と読み出し以外は すべて js で処理する掲示板を作ってます.
(js に こだわる理由は改造のしやすさと負担の分散)
現在は form に tsv データをぶち込んで js に読み取らせる方式.
これには欠点があって cgi によるタグ無効化処理を無効化する作用が...
(<, > などが勝手に復元されてしまう)
(今は cgi 側では無視して js 側で無効化)
他に考えられる読み込み方式は Ajax.
こちらで問題となるのが IE.
セキュリティーホールとして有名な ActiveX を ON にする必要があるとか.
IE も ver. 8 がでてるらしいですが, この辺の事情は変わってないのかしらん ?
(7,8 となってもワケワカメナ IE, いっそ, バッサリ...)
465 = :
>>462
あとあれだな
イベント関連とかIEでは使えて他で使えないとか
もうコンピューター上で無いと困るくらいの存在になってるブラウザなのに
そういう差違があるのはいただけないわ
466 = :
連装配列…
なんか強そうだ
467 = :
>> 462
MS自ら、こんなキャンペーンを始めたしな。
http://japan.cnet.com/news/media/story/0,2000056023,20404512,00.htm
まさに自作自演。w
468 = :
>>464
そんなことをするやつは大概javascriptも切ってるんだから
気にするならjavascriptなしでもある程度読めるようにしとけ
そうしたらDOMからデータ読めるようになって一石二鳥だ
469 :
>>467
IE6のサポートを終了します、ってひとこと言ってくれれば済むのに。
んで、こっそりとIE6を攻撃するものをゴニョゴニョすれば。
470 = :
>>464
お前のエスケープのやり方が間違っている
471 = :
未だにIE6をリプレースできないシステムも多いから
迂闊にサポート切れんだろう、韓国とか
MSもここまで開発者が馬鹿だと大変だな
472 = :
>>469
XP のサポート期間がまだ残ってるので
標準ブラウザの IE6 もまだサポートしなきゃいけない
MS 自身も早く 7 か 8 に移ってほしいと思ってるが
ビジネス上の約束を違えるわけにはいかない
476 = :
><, > などが勝手に復元されてしまう
まずこれを説明してみろ
JSでデータをいじるのにCGI側でエスケープするのがまずありえないんだが(今はやめたらしいが)
お前が馬鹿なことをしてない限りこんなことになることもない
479 = :
<
481 = :
>>473
2chのdatのように直で読まれることを前提に、xmlの要領で単純なhtmlを吐く
そのhtmlのヘッダにjs本体を読むようにしておく
やってることはtsv埋め込みと同レベルだ、負荷がかかるとかばかげたことは言うなよ?
482 = :
そのtsvをhtmlにしてページに埋め込むだけという説明で十分だったか
483 = :
>2ch めんどくさいな・・・
486 = :
>>477
innerHTMLでテキストの書き出しをやってるの?
HTMLを出力するならそれで良いけどテキストで表示させたかったらnodeValue使おうよ
490 = :
お前がHTMLも書けないことはよく分かった。
textareaの中はPCDATAなんだから<、&は&<、&になっていなければならない
まずこれを怠っている時点でXHTMLを書く資格がない
それらは当然、textarea.valueを通せば復元されて<、&になっている
それは正しいデータを得られたということで、何の問題もない
この段階で全ての実体参照は展開されているはずだ
&<となっていてほしいのは、HTMLの実体参照の解説をしているときくらいだろう
データを出力するときはcreateTextNodeすれば<、&は勝手に&<、&になる
何も考えることはない
もしinnerHTMLでの出力を考えるなら
・defer属性付きのscript要素
・イベント属性
・data:スキーム
最低限、これらは除去しなければならない
IE8ならtoStaticHTML()とかあるが、はっきり言って今のお前にできるとは思えない
HTMLタグは許すな、全部エスケープしてしまえ
492 = :
くそw すまん <
496 = :
エスケープの基本中の基本だろ
これを予想外と言ってる段階で・・・なあ
497 = :
エスケープの基本中の基本というかエスケープすらやってないだけでは
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.126 + (952) - [95%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.106 + (1001) - [95%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [95%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.136 + (1001) - [95%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.81 + (1001) - [95%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.82 + (1001) - [95%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.84 + (1001) - [95%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
トップメニューへ / →のくす牧場書庫について