元スレ+ JavaScript の質問用スレッド vol.74 +
JavaScript覧 / PC版 /みんなの評価 : ○
453 = :
iframeの中身であっても、ドメイン超えだとアクセスできなかったりはしない?
確認せず適当に言うが。
454 = :
そんな事が出来たら
<iframe src="http://www.amazon.co.jp/" id="readFrame"></iframe>
alert(document.evaluate("//div/span[@class='navGreeting']",document.getElementById("readFrame").ownerDocument,null,0,null)).iterateNext().textContent);
こうするだけでAmazonで使ってる自分の名前が表示出来ちゃうね
455 = :
XPathがどうしようもなく分からない
456 = :
異ドメイン操作不可というのはよいですよね。
458 = :
//divは/descendant-or-self::node()/child::divの省略形だからな
/descendant::divとは効率も結果も全然違う
特にJavaScript-XPathを使って//divと書いてる奴は悔い改めた方がいい
459 = :
省略しないと長すぎるって言われるんだもん
461 = :
あはは誰だownerとか書いてるヤツ。
ownの意味もわかんないのかwwwww俺
462 = :
表示させたくない要素は、positionでleftとtop
のどちらに大きな負の値を入れるのがよいでしょうか。
要素を飛ばすとき、bottomとrightに指定すると
ブラウザによってはスクロールがでてしまいました。
今はleftでしているのですが、ほぼ差し支えないでしょうか?
よろしくお願いします。
463 = :
display: none
464 = :
あれ、つうかcssでいいのか?
ここjavascriptのスレだけど?
465 = :
cssスレだと、js知らないやつからしたら
使い道よりも一つの方法としての意識の方が強いが
js、css両方知ってるやつからしたら
明確に、使い道として理解してる
まぁどっちでもいいんじゃないだろうか
強いて言うならjsスレの方で聞くほうが賢いと思う
466 = :
正方形200×200のエリアがあって、その上をマウスが動くときに
その正方形の中心から100×100の範囲だけ有効にしたくて
マウスのx座標、y座標それぞれxとyにして
if(x>50 && y>50 && x<150 && y<150){}
みたいにしたんだけどもっとカッコいい書き方があるような気がしてそわそわするから教えて
467 = :
何かが間違っているような気がしてそわそわする
468 = :
似たようなことを繰り返すなら俺はRectオブジェクトでも用意するけど、最終的にやってることは変わらんから一回だけならそれでもいい
var r = new Rect(50, 50, 100, 100);
if (r.contains(x, y))
ちなみにそれ99x99だぞ、不等号使うときはよく考えろ
469 :
>>462
ほぼ差し支えないんじゃないかと。
>>463
作った要素の大きさをこっそり測っておきたい時とか、あるじゃん。
470 = :
測りたいときだけそうすればいい
多少なりとも描画に時間を費やしているから測れるってことを忘れんな
471 = :
計りたいときだけそうできればどんなに楽だったろうな
472 = 469 :
>>470
>測りたいときだけそうすればいい
あ、それはそうだと思います。
473 = :
parseIntって非推奨とかある?
なんかどっかで見た気がするんだけど勘違いなきがするのでお願いします
474 = :
>>473
parseInt()はECMA-262で規定されているので使うことは無問題。
ただ、1引数で使うと'012'みたいに0で始まる文字列は8進として
解釈されるため、常に2引数で使った方がいい。
それを忘れるくらいならむしろparseFloat()を使えばと前に
ここで書いたがそれには異論もあったかと。まあそれだけ。
475 = :
あとはきちんと戻値をisNaN()にかけてNaNチェックするとかね
まあ使いどころによるけど
476 = 469 :
みんなNaNってなんて読んでる?
自分は奈良ナンバーと読んでいるんだけど…
477 = :
ナン
478 = :
ナソ
479 = :
文末のセミコロンはつけるべきですか?
それとも省略すべきですか?
480 = :
つけるべき
481 = :
寧ろ改行とかいらん
482 = :
>>480
㌧
483 = :
>479
つけないとセミコロンは自動補完されるわけだけど、稀にセミコロンがつくと思ってた場所につかなくい、って事がある。
(まあ、逆に「つかないと思ってた場所にセミコロンがつく」場合の方が多いが。例えば
return
{
aaa : bbb
}; // nullが返る
いずれにせよ原因を非常に特定しづらいバグを生むので、なるべくつけるようにした方がいい。
484 = :
つかなくい→つかない
485 = :
>>483
そうなんですか
つけるようにします。
486 = :
なんちゃって
489 = :
evalするコストが無い分配列のほうが断然早いな、
490 = :
>>489
なるほど参考になります。
あと、oj={'a':'test'};場合
oj.aでもoj['a']でもどちらでもtestを取れるみたいなんですが
これって何か違いがあるんでしょうか
492 = :
>>489
ハッシュするコストじゃないか?評価はどっちもするし
って質問内容に忠実すぎるのかw
それはオブジェクトリテラルだ、JSONならこう
var json = "{'a':'test'}";
var oj = eval(json);
>>490
使用可能な文字の違い(文字列リテラルならほぼ全て)
静的or動的
Stringオブジェクトの要不要
二番目の差が一番でかいと思う
var v = "a";
alert(oj[v]);
もちろん便利な分、若干でも処理にコストがかかる
493 = :
>>491,492
勘違いしておりましたありがとうございました。
たしかにoj.aだとa=なんたらとかにして代入できずでした
あとoj['a']のときよりもシビアなリテラル選びになりそうでした
ただやはり処理を速くくしようとすれば
配列>オブジェクトリテラルのoj.a>oj['a']
な感じでしょうか
ありがとうございました。
494 = :
ちゃんとベンチとったほうがいいぞ
Arrayでもデータ構造はObjectの使い回しをしてる可能性もあるし
最適化とか関わるとドット演算子使うのが一番速い場合だって考えられる
つーか変数使うのが一番速い
495 = :
Firefox 3.0以上向けにJavaScriptのプログラムを組んでいます。
Canvasを利用した描画を行いたいと思っているのですが、点線の描画方法が分かりません。
点線でなく、実線の描画方法ならば、下記の通りに出来ました。
--ソースの描画部分--
//キャンバスの取得
var canvas = document.getElementById("canvas");
if (!canvas.getContext)
return; // Unsupported
//線描画
cv = canvas.getContext("2d");
cv.beginPath();
cv.lineTo(25,255);
-- ここまで --
点線の描画を行いたいので、そちらをお願いいたします。
496 = :
便乗でcanvasの質問します。
以下のコードでf=[16,16,20,20]のときより明らかにf=[16,16,32,32]のときの方が
四角の描写までの反応が速いのですが、何が原因でしょうか。
一応自分でいろいろと考えてみたのですが、f=[16,16,20,20]のとき、
1.座標取得の時点で反応が遅れている(pageXやoffsetLeft、offsetTopが原因?)
2.helpのinnerHTMLのコメントアウトの行を有効にしたとき、
・help要素がhoge1要素とかぶると遅い、
・hoge1要素と十分にかぶらないくらい(16×20より上)の値をhelp要素のleftに入れると速い(例left:400px;)
くらいしかわかりませんでした。いずれもFireFox3.0で実験した結果です。
<html><body><div id="hoge1" style="border:2px dashed blue;position:absolute;left:0px;"><canvas id="hoge2" style="position:absolute;"></canvas></div>
<div id="help" style="width:100px;height:50;position:absolute;left:0px;">a</div>
<script type="text/javascript"><!--
elem1=document.getElementById('hoge1');
elem2=document.getElementById('hoge2');
// f=[16,16,32,32];
f=[16,16,20,20];
elem1.style.width=f[0]*f[2];
elem1.style.height=f[1]*f[3];
elem2.width=f[0]*f[2];
elem2.height=f[1]*f[3];
ctx=elem2.getContext('2d');
elem1.onmousemove=function(e){
var px=Math.floor(e.pageX-this.offsetLeft);
var py=Math.floor(e.pageY-this.offsetTop);
var sa=[f[0]*Math.floor(px/f[0]),f[1]*Math.floor(py/f[1])];
//document.getElementById('help').innerHTML=sa.join();
var rgb=function(){return Math.floor(Math.random()*255+1)};
ctx.fillStyle='rgb('+rgb()+','+rgb()+','+rgb()+')';
ctx.fillRect(sa[0],sa[1],f[0],f[1]);
}
//--></script></body></html>
497 = :
Firebugでたどっていくといいよ
498 = :
JSONは二重引用符しか受け付けないし
配列もJSONなんだぞ
大丈夫かお前ら
499 = :
>上の配列と下のJSONって
という元質問に対して、JSONで配列が定義できることがどう関係するんだ?
500 = :
>>499
君は>>498の言ってることを全く理解してないと思う
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.94 + (1001) - [97%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + 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.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.134 + (1001) - [95%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.140 + (1001) - [95%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [95%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.142 + (926) - [95%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.143 + (753) - [95%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [95%] - 2020/5/17 20:00
トップメニューへ / →のくす牧場書庫について