元スレ+ JavaScript の質問用スレッド vol.79 +
JavaScript覧 / PC版 /みんなの評価 :
1 = :
━━━本スレに書く事を許される者は以下の通り━━━━━
一、正しい(validな)HTMLとは何か知っており書ける者
一、JavaScriptはJavaとは別物であると知っている者
一、自ら学んでJavaScriptコードを書く意思を持つ者
一、ユーザに迷惑となるスクリプトを書かない者
一、質問を分かる日本語できちんと説明できる者
一、トラブルを再現する最小限のサンプルを貼れる者
一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレhttp://pc11.2ch.net/test/read.cgi/hp/1273328285/
[必読]過去スレ全集http://www2.atpages.jp/mirror/2ch/javascript/
(閲覧のみ)http://usamimi.info/~mirrorhenkan/2ch/javascript/
(閲覧のみ)http://wing2.jp/~mirrorhenkan/2ch/javascript/
[必読]ガイドhttp://developer.mozilla.org/Ja/JavaScript
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-7
2 = :
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
ただ「動きません」「エラーです」は何も情報がないため嫌われる。
エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
手間を食わせる可能性大
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
3 = :
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
<div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。
tbody要素はtbodyタグを書いていなくても自動的に作成されます。
またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A8. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
4 = :
【FAQその2】
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
offsetがマッチした位置、sが置き換え前の文字列全体になります。
5 = :
【FAQその3】
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
7 = :
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
→http://www2u.biglobe.ne.jp/~oz-07ams/prog/
どら猫本舗のリファレンスカウンター
→http://www.doraneko.org/
はぎさんちのページ Mozilla's DOM Sample Project
→http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi
一撃必殺javascript
→http://www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ part218
→http://pc11.2ch.net/test/read.cgi/hp/1274111468/
CSS初心者スレッド=8th=
→http://pc11.2ch.net/test/read.cgi/hp/1273383771/
役に立つ書籍は? 4冊目
→http://pc11.2ch.net/test/read.cgi/hp/1172823674/
1行javascriptプログラミング
→http://pc11.2ch.net/test/read.cgi/hp/1066750037/
WSH(・∀・)スレッド! Part 4
→http://pc12.2ch.net/test/read.cgi/tech/1243095768/
10 = :
>>8
で、どこが質問?
11 = :
ただの意思表明だな
15 = :
「マウスストーカー うざい」で検索したらいい
16 = :
IE(ver8で確認)ではinnerHTMLで取得した値は行頭スペースや改行コードが除去されてしまっているようなのですが
IEでelementから改行コードを保持したままソースを取得するにはどうすればいいでしょうか?
chrome5やFirefox3.6ではちゃんと行頭スペースや改行コードを含む値が得られました。
取得しようとしているelementの中身はテキストとbrタグだけではなく、色々なタグを含んでいます。
17 = :
IEを無視
18 = :
要素に任意の値を持たせたいんだけど何か方法はある?
IEなら
<span style="hoge1:abc;hoge2:xyz" />
みたいにstyleプロパティに任意のデータを割り当てられたんだけど
Firefox,Opera,Chromeは全部ダメだった。
19 = :
>>18
なんでstyle属性を使おうとしてるのか理解に苦しむが
<span hoge1="abc" hoge2="xyz" />
じゃ駄目なのか?
20 = :
むしろこれでいいじゃないか
<input type="hidden" value="="hoge1:abc;hoge2:xyz" />
22 = :
>>16
そもそも、改行付きのコードを取って何に使いたいわけ?
それによっては改行いらんと言えるかもしれん。
28 = :
FirefoxでActiveXは使えません
29 = :
>>28
あーほんとだ。元サイトに「ActiveXが有効であり」と書いてあった。
ちなみに、ttp://www.happy2-island.com/vbs/cafe02/capter00205.shtml
のJavaScriptはFirefoxで使えますか?
(もっと簡単な記述を探していますが、これ以上のものが見つかりません)
30 = :
>>29
使えません。
それはWSHだ。IE上で動くJavaScriptですらない。
32 = :
CGI使えないサーバにHPがある所では無理ですよねえ...
33 = :
クライアント側のjavascriptでどうこうしたいというなら、
CGIが使えるかどうかなんて関係ないんじゃないか
34 = :
>>33
JavaScriptだけで出来るの?
35 = :
>>27の目的だけなら出来るだろう
37 = :
すいません。目標は、JavaScriptで外部ファイル(テキスト,CSV)より
数値を読み込んでHTML5のCanvasでグラフを描くことです。
http://sites.google.com/site/gorogoronyan/Home/html5-canvas-deta-yomitori
では例がありますが、
「こちらは、Firefox3.5 でのみ動作します。Safari 4、Chrome、Opera は不可。」
ということなので、他のブラウザでの応用が出来ないので苦慮しています。
38 = :
XHR使ってもChromeはダメなんだっけか。
まあHTTPを介さず、ローカルのファイルに直接アクセスしようという
発想自体がJavaScriptの(少なくとも現在のJSの)守備範囲から外れているので、
そういう制限がかかってくるのはもう仕方がない。
39 = :
>>38
う~ん、そうなんですか。。。
Canvasタグでも画像は簡単に読み込めたので、テキストも簡単に
読み込めると思っていました。
40 = :
>>39
少し前まではChromeでもXHRでローカルファイルにアクセスできたような記憶がある
Operaの最新版とSafari4.05ではアクセスできた、IE8は無理だった
複数のブラウザでの動作を狙うなら、テキストの中身を直接jsに書き込む方が手っ取り早いかもね
41 = :
>>39
落ち着け。まず整理しよう。
おまえがやろうとしていることは、
1. htmlが置いてあるサーバ内にあるテキストを読み込みたい
2. htmlが置いてあるサーバではないが、web上のどこかにあるテキストを読み込みたい
3. htmlにアクセスしてきたユーザマシン内にあるテキストを読み込みたい
の、どれだ。
1なら簡単にできる。2ならちょっとトリッキーなことをすれば出来る。
3は無理だ。ただし、まずファイルをアップロードさせれば1か2の手段で読むことは可能だ。
42 = :
顧客が本当に必要だったものは、『※CSVの内容をこのテキストボックスにコピペして、[グラフを描く]ボタンを押してください』
という実装な気がする。
43 = :
>>40-42
お手数をお掛けします。私がやろうとしているのは、
PC売り上げデータなどのテキスト(CSV)を作成(更新)
→ サーバーにUp
→ リロードなどで最新の情報を参照してHTML5のCanvas(グラフ)を更新
という流れで、気象情報で例えると過去24時間の地区別降水量を
1時間毎に更新グラフで見るというものです。
ですので、>>41さんだと1の方法ですが、自己レス>>37の
通りブラウザ依存性があったりして困ってます。
引き続きアドバイス願います。
44 = :
てきとーなライブラリでできんじゃねーのそんくらい
45 = :
多分やろうとしてることに対してブラウザ依存は関係ないだろう
46 = :
前スレでGIFアニメについて質問した者ですが、
普通の複数の画像をJavaScriptでアニメーションされることで解決しました。
ありがとうございました。
47 = :
IE(8) では Canvas 使えない
iPhone / iPad では Flash 使えない
悩ましい所だよな
exCanvas などあるが文字列描画に難あり……
48 = :
初歩的な質問失礼します
関数を定義する際に引数の型を厳密に決める事は出来るのでしょうか?
また関数を初期化するときに引数がある時とない時と動作を変えたい(要するにコンストラクタ)のですがその場合どうすればいいでしょうか?
49 = :
コンストラクタでなくオーバーロードでした
そちらでググッたらどちらも自己解決しました。失礼しました
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.129 + (981) - [95%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [95%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.129 + (926) - [95%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [95%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について