元スレ+ JavaScript の質問用スレッド vol.77 +
JavaScript覧 / PC版 /みんなの評価 :
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が置き換え前の文字列全体になります。
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
5 = :
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・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サイト制作初心者用質問スレ part217
→http://pc11.2ch.net/test/read.cgi/hp/1267851052/l50
CSS初心者スレッド=7th=
→http://pc11.2ch.net/test/read.cgi/hp/1251527427/
役に立つ書籍は? 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/
11 = :
> すいません。超初心者で何がなんだかわからなくて質問します。
のっけからえらく挑戦的ですね。
12 = :
釣りじゃありません。手元にJSの本があるんですが、matchは検索というのが
わかっただけで、後は何がなんだかさっぱりです。
etc2が邪魔なんでなくしてください。
よくわかってませんが、よろしくお願いします。
13 = :
そこだけコメントアウトすればいいんじゃないの
14 = :
回答ありがとうございます。
{mes = "あああ";f.etc2.value="white";}
と
if (f.etc2.value == '') f.etc2.value="white";
を外したらうまく行きました。でも、これで良いでしょうか?
何かバグとか出る心配はありませんか?
16 = :
回答ありがとうございます。
書き込みできなくなったら、それを試してみます。
このスクリプトは人のサイトから盗んできたもので
etc2は掲示板に書き込む文字の色の設定に使われていました。
17 = :
etc2が何なのかは誰も知らないんだから、
本当に大丈夫かどうかはそこに貼られた部分だけしか分からんがな
18 = :
そうなんですか。一応、etc2のある箇所をペーストしたんですが
また失敗したら次回もまたよろしくお願いします。
19 = :
こんな奴スルーしろよ・・・
20 = :
正確な画像のサイズが取得できません。
以下のソースを使っていますが、IEではキャッシュが無い時に縦サイズが短くなったり、MACでは縦が長くなったりします。
綺麗な取得方法あればお願いします。
また、やりたいこと「画像サイズが不定なので、特定枠に比率を維持して納める。」だ達成できればそれでOKです。
ご助言お願いします。
function getImageSize(image){
var w = image.width;
var h = image.height;
if(typeof image.naturalWidth !== 'undefined'){ //for Firefox, Safari, Chrome
w = image.naturalWidth;
h = image.naturalHeight;
}else if(typeof image.runtimeStyle !== 'undefined'){ //for IE
var run = image.runtimeStyle;
var mem = {w:run.width, h:run.height}; //keep runtimeStyle
run.width = "auto";
run.height = "auto";
w = image.width;
h = image.height;
run.width = mem.w;
run.height = mem.h;
}else{ //for Opera
var mem = {w:image.width, h:image.height}; //keep original style
image.removeAttribute("width");
image.removeAttribute("height");
w = image.width;
h = image.height;
image.width = mem.w;
image.height = mem.h;
}
return {width:w, height:h};
}
21 = :
追伸。
CSSでも構いません。
よろしくお願いします。
22 = :
ロード中のサイズ取得は愚行
Imageオブジェクトにプリロードしてロード完了をイベントでキャッチして
その時点で縦横のサイズを取得とかすればいい
23 = :
関数実行時点で画像がまだ読み込まれてないとか?
>特定枠に比率維持
横か縦の片方だけをimgに指定すればブラウザ?が勝手に比率維持でやってくれると思うんだけどそれじゃダメなのかい?
縦横両方のサイズが決まっていてもcssのmin-height/width~~で出来そうな気がする。
24 = :
テンプレ >>2 の差し替え案。前スレ末尾の続き。ご意見求む。
【質問を書く上で】
1)「どんな意図で/何を/どう」操作した場合、「どのように」動作させたいのかを
一般的な言葉や用語で簡潔に説明してください。
「動きません」ではわかりません。脳内用語・オレ用語は混乱のもと。
2)自力で調べたこと/試したことを明記のこと。
OS、ブラウザ+バージョン、(あれば)エラーの行と内容を必ず書きましょう。
エラーの行と内容を見るのはIE8、Firefox、SafariのJavaScriptコンソールで。
3)質問に関するソースコードを出来る限り貼ってください。
余分が少なく、コピペだけで動作やエラー再現のできるものが理想です。
1レスで入らないような長いソースの場合はアップロードする等工夫を。
4)閲覧者の迷惑になる質問は回答されません。
別窓を多数開く、閉じる/戻る/クリックを妨害、画面占有、など。
「分かんねえの?」と煽っても無駄です。
5)「初心者なので」「初心者ですみません」とか書いても好感は得られません。
過去に初心者を言い訳に調べもせず我儘な質問をする人がいたためです。
25 = :
変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、
1文字めを削除して"123"や"534"にしたいです。
どうすれば出来ますか。
26 = :
>>25
>>変数strに"a123"や"b534"など英字1文字+数字3桁の文字列
この条件決め打ちでいいなら,
var result = str.substring(1);
28 :
>>26-27
ありがとー!ございます
29 = :
もう1つすみません。
変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、
英字を<p></p>ではさんで、 "<p>a</p>123" や"<p>b</p>534"を作ることってできますか?
30 = :
ヒント置いとくからちょっとは自分で考えろよ
"a123".replace(/^(\w)/, "$1/")
31 = :
>>27 substrは非標準。標準にあるのはsubstring。
>>29 str = str.replace(/(.)/, "<p>$1</p>"); かな。
それはいいけどアンタ少しは自力で調べたり勉強する気あるの?
32 = :
>>30-31
ありがとうございます!
">"をあらわす ">" は、何文字と数えればいいのですか?
34 = :
聞く耳の持たなさワロス
35 = :
これが最後なんで本当に頼みます
ついでに全角文字も何文字と数えるのか教えてください
本当に最後です
36 = :
試してみたら分かるはずだけど、どうして自分で調べないの?
37 = :
向上心がなさすぎるな
38 = :
この流れは
・教えずに自己解決→「他で聞いたらすぐわかったわ。使えねーなお前ら。もうこねーわ。」
・教えて解決→「このくらいもったいつけずにすぐ教えろよ。使えねーなお前ら。もうこねーわ。」
のどっちかのパターンになることが多いね。
39 = :
こういう奴に度々来られても困る訳だが
44 = :
また、evalかっ!
46 = :
eval("var eval=function(){throw new Error()}");
こう?
47 = :
>>46
ずいぶん高度な自虐ネタだな
わかっている上でわざとやってるのかが判断できん
49 = :
でも動けばいいって言うんだよね
50 = :
「できない」より、動いた方がいいに決まってる
類似してるかもしれないスレッド
- + 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.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.107 + (1001) - [95%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.117 + (1009) - [95%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.127 + (160) - [95%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [95%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [95%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
トップメニューへ / →のくす牧場書庫について