11/09/26 23:13:33.05
DOCUMENT_FRAGMENT_NODEはELEMENT_NODEとは違うでしょ
357:Name_Not_Found
11/09/27 00:58:49.31
>>356
それは理解してる
358:Name_Not_Found
11/09/27 01:35:40.71 qkW8sxkg
わかんないけど、inputを作る気には確かになりませんな
359:Name_Not_Found
11/09/27 02:05:24.72
要素作って放り込むだけならdocument.createDocumentFragment()だけでよし。
innerHTMLみたいなことするなら
range = document.createRange();
range.selectNodeContents(document.documentElement);
flagment = range.createContextualFragment("<h1>hello world</h1><script>alert('xss')</script>");
// flagment.childNodes[0] = h1
// flagment.childNodes[1] = script
360:Name_Not_Found
11/09/27 03:06:48.25
そういうのって配列とか変数にしておくのとどういう用途の違いがあるんですか?
361:Name_Not_Found
11/09/27 07:48:52.09
URLリンク(www.impressjapan.jp)
コードが長くて載せられませんでした
このファイルのgrayscale.html
画像をドラッグドロップするとその画像をグレイスケールに変換して
CANVASに出力するというコードなのですが、
getImageDataで取り出したimagedataを
convert_image_to_gray_scale関数に引き渡している所で
代入もreturnも無いのに出力時にデータが更新されているのはなぜでしょうか。
362:Name_Not_Found
11/09/27 09:57:54.41
マルチ乙
363:361
11/09/27 11:02:58.38
片方を消したのでよろしくお願いします
364:Name_Not_Found
11/09/27 11:44:21.04
>>361
var data = { a: 1 };
function hoge(obj) {
var n = obj['a'];
obj['a'] = n + 1;
}
alert(data.a); // 1
hoge(data);
alert(data.a); // 2
これも不思議なコードに見えるかい?
同じようにconvert_image_to_gray_scale関数が受け取ったオブジェクトを
書き換えてるみたいだが。
365:Name_Not_Found
11/09/27 12:05:40.38
> data[ i*4 ] = g;
> data[ i*4 + 1 ] = g;
> data[ i*4 + 2 ] = g;
これで貴方の言う「更新」をしてる
366:361
11/09/27 14:53:19.99
ご回答ありがとうございます。
>>364
その式で言うと、objを修正するとdataにも反映されるということですか?
>>365
そこで値を変更してなぜ関数の外のimagedataに反映されているのかがわからないんです。
変数だとreturnで返して代入しないと反映されないですよね?
オブジェクト特有なんですか?
367:Name_Not_Found
11/09/27 15:08:38.19
> その式で言うと、objを修正するとdataにも反映されるということですか?
Yes.
> 変数だとreturnで返して代入しないと反映されないですよね?
Yes.
> オブジェクト特有なんですか?
Yes.
368:Name_Not_Found
11/09/27 15:12:17.27
すいません、ちょっと質問させて下さい。
<a href="javascript:function1(val1,val2,val3);">リンク</a>
っていうコードを記述してIE6では問題なく動作していたんですが、
IE7以降のブラウザを使用するとリンククリック後、リンク色が変わらなくなってしまいました。
どうにかリンク色を変更することはできないでしょうか?
369:361
11/09/27 15:14:41.58
>>367
そうだったんですか。。
大変勉強になりました。
本当にありがとうございます。
またよろしくお願いします。
370:Name_Not_Found
11/09/27 17:52:53.90
>>368
再現できるコード
371:Name_Not_Found
11/09/27 18:43:06.03
<a href="javascript:alert(0)">alert</a>
たとえばこういうのでも、URL「javascript:alert(0)」が訪問済みだ、って意味で:visitedのスタイルが適用されてたのに
って意味じゃない?
そもそもIE6の挙動が普通じゃない気がする
372:Name_Not_Found
11/09/27 19:02:01.38
function testfunction() {
document.Form1.submit();
}
<a href = javascript:testfunction()>test</a>
っていう感じです。
>>371さんが記述してあるとおりです。
ただ、visitedになってもらわないと問題がある箇所なので、
どうにか擬似的にでも再現できないかと考えているんですが無理なんでしょうかね?
373:Name_Not_Found
11/09/27 19:13:49.81
擬似的で良いならばonclickで色変えるとか好きにすれば良いのでは
374:Name_Not_Found
11/09/27 19:20:20.43
>>373
その場合、リンク先に移動した後戻ってきたとき色の変更が戻ってしまいますよね?
今回対象にしている画面の特性上、どこまでリンクを踏んだかを知りたいので、
行って戻ってきたときも色の変更が生きている必要があるんです。
先に言っておくべきでしたすいません。
375:Name_Not_Found
11/09/27 20:06:06.98
onclickでどこか開くならそこのURLをhrefに書いて、onclickに処理(ログ収集とかが目的?)書けばいいんじゃね。
そうじゃないなら、各aにid振ってクリックされたらcookieやlocalstorageに記録。
ページが開かれたらそこから情報取得してリンク色変更。
自前の鯖もってるなら、<a target="hoge" href="/dummy.html?id=001" onclick="func()">~</a>
<iframe name="hoge" style="display:none;"></iframe>をどっかに隠しておけばOK.
404だと無理だったから存在するページにクエリつけてユニーク化。
376:Name_Not_Found
11/09/27 20:25:23.24
>>375
なるほど!!
早速やってみます!!
ありがとうございました。
377:Name_Not_Found
11/09/27 20:27:56.40
いいかげんhref="javascript:"のようなのは駆逐されるべき
378:376
11/09/27 21:06:37.61
報告です。
>>375の一番最後のブラウザをhrefで誤認させる方法で実装できそうです。
どうもありがとうございました。
379:Name_Not_Found
11/09/28 05:24:21.59
関数で最後の return; って省略すべき?
380:Name_Not_Found
11/09/28 05:48:18.49
もしかしてjsでは ' ' の場合でも \ はエスケープされてしまうんですか?
381:Name_Not_Found
11/09/28 05:50:23.27
>>379
引数の有無にもよる
URLリンク(www.ajaxtower.jp)
382:Name_Not_Found
11/09/28 06:03:28.86
>>381
ありがとう
戻り値は特にないんで省略します
383:Name_Not_Found
11/09/28 06:12:12.72
(1)以下のソースで任意のプロパティを挿入しようとした場合に意図した通りに
text-shadow:0 0 0 transparent; のプロパティが挿入はされるものの、
実際にレンダリングには反映されないのはどこが悪いのでしょうか?
(2)サンプルでは指定した任意の要素に対してしかプロパティの挿入ができませんが、
これを text-shadow のプロパティが含まれる要素すべてに適用させるようにするにはどうしたら良いでしょうか?
(3)サンプルではhtmlソース内に記述したcssに対してしかプロパティの挿入ができませんが、
これを外部のcssに対しても(2)のようにプロパティの挿入をするにはどうしたら良いでしょうか?
p#normal-sample{text-shadow:0 1px 2px #f00;color:#eee;}
↓
0 0 0 transparent; を先頭に挿入
↓
p#normal-sample{text-shadow:0 0 0 transparent, 0 1px 2px #f00;color:#eee;}
384:Name_Not_Found
11/09/28 06:13:09.88
>>383の続き
<html>
<head>
<title>プロパティを挿入する</title>
<style type="text/css">
body{font-family:MS Pゴシック, sans-serif;background-color:#333;}
p{font-size:1.5em;}
p#normal-sample{text-shadow:0 1px 2px #f00;color:#eee;}
p#fixed-sample{text-shadow:0 0 0 transparent, 0 1px 2px #f00;color:#eee;}
</style>
</head>
<body>
<p id="normal-sample">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
<p id="fixed-sample">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
<script type="text/javascript">
var stylesheet = document.styleSheets.item(0);
stylesheet.insertRule("p#normal-sample { text-shadow:0 0 0 transparent; }", 0);
</script>
</body>
</html>
385:Name_Not_Found
11/09/28 07:07:21.45
>>384
DOCTYPEぐらい真面目に書け
(1)先頭に規則を入れたら後ろので上書きされんだろ
(2)全規則を探せ
(3)styleSheetsに外部も含まれることぐらい書いてあったんじゃねーの
386:Name_Not_Found
11/09/28 15:44:49.67
アマゾンが書かないから俺も書かないもん!
387:Name_Not_Found
11/09/28 16:37:16.48
DOCTYPE書かないとブラウザがquirks modeになって
新しく追加されたものを使えなくなったりするぞ
IE9にとっちゃinsertRuleも新機能なんだし
388:Name_Not_Found
11/09/28 18:20:26.03
ついでにIE=edgeも送信しないと場合によって互換モードになる
389:Name_Not_Found
11/09/28 18:34:32.70
>>385-388 レスありがとう
>>385
>(1)先頭に規則を入れたら後ろので上書きされんだろ
すみません、どういうことかもう少しヒントだけでもください
(2)、(3)はもう少しググってみます
DOCTYPEは入れてみましたが特に変化はありませんでした。
ちなみにIEでは動作しなくてもかまいません、chromeのwebkitだけで動作すればおkなのですが、、、、
390:Name_Not_Found
11/09/28 18:37:19.73
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>プロパティを挿入する</title>
<style type="text/css">
body{font-family:MS Pゴシック, sans-serif;background-color:#333;}
p{font-size:1.5em;}
#normal-sample1{text-shadow:0 1px 2px #f00;color:#eee;}
#normal-sample2{text-shadow:0 1px 2px #0f0;color:#eee;}
#normal-sample3{text-shadow:0 1px 2px #00f;color:#eee;}
#fixed-sample{text-shadow:0 0 0 transparent, 0 1px 2px #f00;color:#eee;}
</style>
</head>
<body>
<p id="normal-sample1">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
<p id="normal-sample2">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
<p id="normal-sample3">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
<p id="fixed-sample">
The quick brown fox jumps over the lazy dog. 0123456789
</p>
391:Name_Not_Found
11/09/28 18:38:02.29
>>390の続き
<script type="text/javascript">
var styleSheet = document.styleSheets.item(0);
// CSSルールのリスト
var cssrules;
// W3C DOM準拠ブラウザー
if( styleSheet.cssRules ) {
cssrules = styleSheet.cssRules;
// Internet Explorer
} else if( styleSheet.rules ) {
cssrules = styleSheet.rules;
}
// CSSルールの内容を取り出す
for (var i=0; i<cssrules.length; i++) {
// CSSルールオブジェクト
var rule = cssrules.item(i);
// セレクター (p,li,ol等)
var selector = rule.selectorText;
// スタイルオブジェクト
var sytleObj = rule.style;
// CSS宣言ブロックの内容(プロパティ値)
var text = sytleObj.cssText;
// 要素がtext-shadowなら値を変更
if (selector.match(/^p/i) ) {
styleSheet.insertRule(selector + "{ text-shadow:0 0 0 transparent; }", 0);
break;
}
}
</script>
</body>
</html>
392:Name_Not_Found
11/09/28 18:39:52.10
>>390-391のようにしてみましたが
text-shadow:0 0 0 transparent;が<p id="normal-sample3">にしか挿入されず
相変わらず表示も更新されないままです
393:Name_Not_Found
11/09/28 18:48:47.29
>>390
DOCTYPEの意味はおろかX/HTMLすら分かってないだろ
そこ消して<!DOCTYPE html>だけ書いとけ
> styleSheet.insertRule(selector + "{ text-shadow:0 0 0 transparent; }", 0);
同じセレクタなら後ろのものが優先されるのがCSSの基本だろ
0番に挿入したって、後ろに同じselectorのものがあれば上書きされるに決まってる
もすこしHTMLとCSSの基礎知識つけとけ
こんな部分で引っかかってたら時間かかるぞ
394:Name_Not_Found
11/09/28 18:49:47.75
JSで、引数にファイルへのパスでなくて、データ内容そのものを渡して読み込ませることはできるのでしょうか。
引数にファイル名を渡すモジュールを使っているのですが、
データベースからblob型のデータをファイルに落としてから読み込ませるのは無駄だなぁと思い、質問しました。
395:Name_Not_Found
11/09/28 18:54:35.42
data uriに対応しているブラウザならbase64で
対応していないブラウザのことは
↓が答えてくれる
396:Name_Not_Found
11/09/28 19:35:30.15
>>391
text-shadowを変更したいruleを識別できたのなら
そのままrule.style.setProperty('text-shadow', ..)すればいいじゃん
もし変更部分を後から消すことで元に戻したいとかなら
0番でなく末尾に規則を入れるんだ
395に関しては
↓が答えてくれる
397:Name_Not_Found
11/09/28 19:36:04.76
>>393
>0番に挿入したって、後ろに同じselectorのものがあれば上書きされるに決まってる
cssの仕様として後続の指定が優先されるということなら理解しているつもりです
今回の場合ちょっと特殊な事情があってブラウザのバグをcssで対策する方法をスクリプトで自動化したいという目的で
p {text-shadow:0 1px 2px #00f;color:#eee;}とあった場合に
p {text-shadow:0 0 0 transparent, 0 1px 2px #00f;color:#eee;}
と先頭に 0 0 0 transparent を挿入することで正しく表示されるようになるのです
>>390-391で示したソースでブラウザ内蔵のツールで一旦該当プロパティを手動で無効にしたあと再度有効にすると
ちゃんと表示されるようになるのでどうにかならないものかと、、、、
398:Name_Not_Found
11/09/28 20:28:04.86
ちょーっとした質問なんですが
iframeの中から親要素の<div id="a">の部分を取得するには
parent.document.getElementById("a")とかですが
iframeの中から親要素の場所にある関数(function hoge(){~})を実行させるにはどうしたらいいでしょうか?
399:Name_Not_Found
11/09/28 20:48:13.94
documentというのはwindow.document
hoge()というのはwindow.hoge()
400:Name_Not_Found
11/09/28 21:20:59.70 8vLT5zLV
初歩的なことかもしれませんがお願いします。
画像がスクロールして表示されるやつとかスライドショーとかって、
1 すべての画像ぶんの要素を作って一度に挿入する
2 すべての画像ぶんの要素を作って一度に挿入するけど画像は必要になってから読み込む(lazyなんとか)
3 表示されるぶんの要素だけ作って挿入する、必要になるたびに作って挿入、不要になれば取り除く
のどれが常識ですか?どれでもなくさらに別の方法ですか?
読み込みの早さとか処理のスムーズさとかメモリの使い具合とかそういう
401:Name_Not_Found
11/09/28 21:24:00.70
>>399
なるほど、windowまで考えるんですね
ということはparent.window.hoge()ですかな?ありがとうございます!
402:Name_Not_Found
11/09/28 21:26:32.29
>>398
そんなことできんの?
403:Name_Not_Found
11/09/28 22:01:21.86
>>401
おしい。それでも動くけど、parent.hoge();でOK
parentが親のwindowを指すからparent.documentが出来る。hogeも同様
>>402
同じホストならね。逆も可
>>400
1と2はサーバーへの負荷を考えると2になる。2と3の比較は知らん。
最悪試してみて比較すればいいんじゃね。
404:401
11/09/28 22:16:18.71
>>403
あざーっす!
超助かります!
405:400
11/09/28 22:23:22.53
>>403
どうもありがとうございます
2を書いた時点で1はないな・・・と思ってました
2か3かまたはそれ以外かは
一般常識?になってるほど「これだ!」って方法はないってことですか
406:Name_Not_Found
11/09/29 01:25:49.80
フォームボタンを押下した後、次のページに遷移するまで
そのボタンの横で
ビジーのインジケーターをくるくる回すにはどのような手順を踏めばいいかな?
407:Name_Not_Found
11/09/29 01:54:51.92
onsubmitでアニメgifでも貼り付けなさい
408:Name_Not_Found
11/09/29 13:11:41.57 ydHAIm6S
こちらで聞くのもあれですが
URLリンク(search.twitter.com)
が応答しないのって、落ちてるだけですか?
それとも変わりました?
409:Name_Not_Found
11/09/29 17:18:33.58
>>408
サービスに起因する問題を訪ねられてもなあ…
とりあえず、HTTPステータスを確認するとか、Twitter公式サイトで情報を探してみるとか、Twitterスレで聞いてみるとか、切り分けの方法はいろいろあると思うけどどう?
410:Name_Not_Found
11/09/29 18:11:59.20
質問です。アクティブデスクトップのウィンドウサイズをスクリプトで変更する方法はないでしょうか?
resizeToやresizeByでは不可でした。
411:Name_Not_Found
11/09/29 19:08:22.03 7JLcE7x3
var a = { b: function() { /* この部分 */ } };
「この部分」から自分自身が入れられたオブジェクトのキー名(関数自身ではなく)を取得できますか?
方法を教えてください。
「b」という文字列を取得したいです
412:Name_Not_Found
11/09/29 19:21:57.02
arguments.callee.name
var a = { b: function() { for (var key in this)if(this[key]===arguments.callee)return key; } };
仕様でサポートしてなかったような気もするから調べてみて。
関数名が必要になる作りはおかしいと思うけどな。
413:411
11/09/29 19:36:37.34
>>412
> var a = { b: function() { for (var key in this)if(this[key]===arguments.callee)return key; } };
chrome、ie、firefoxのそれぞれ一部のバージョン(最新ではない)で確認してうまくいきました
どうもありがとうございます
414:Name_Not_Found
11/09/29 20:22:40.23 ydHAIm6S
>>409
ステータスは403が返ってくるんで
公式アナウンスを探したんだけど、とくに見つけられなくて
どっかで聞いてみようと思いたち
ツイッタースレよりJSスレの人達のほうが
頼りになりそうかなーと思い聞いて見ました
スレ違いすまんこ
415:Name_Not_Found
11/09/30 02:52:29.55
そろそろJavaScriptもそこそこ分かってきたと思うので、
フレームワークに手をだそうかと思うのですが、
最近のJSフレームワークの動向とシェア率っぽいまとめありますかね?
やっぱjQueryの独り勝ちなのかな?
416:Name_Not_Found
11/09/30 11:48:38.18
>>415
URLリンク(www.google.co.jp)
417:Name_Not_Found
11/09/30 16:57:10.06 EkSRfQC4
<html>
<body onload="b(3)">
<script type="text/javascript">
b=function(d){
document.F1.T1.value=d;
d=d+1;
window.setTimeout("b(d)",1000);
}
</script>
<form name="F1" action="#">
<input type="text" name="T1" size=50>
</form>
</body>
</html>
ページが読み込まれた1秒ごとに3からプラス1していった数字を表示したいのですが、
3から数字が変化しません
引数を使わずd=3としてdを表示するようにしていくと正常に動くのですが
引数を使うとなぜ動かなくなるのでしょうか?
418:Name_Not_Found
11/09/30 17:04:38.10
window.setTimeout("b("+d+")",1000);
こういうこと?
419:Name_Not_Found
11/09/30 17:37:46.50
>>418
うわあああああああ動きましたあああああああ
ありがとうございます
数字や文字や関数名メソッド名は勝手に識別してくれて、
さらに「”」で囲んでいない場合は記述の中に変数は使われていないものと自動で判断、
ただし変数だけは+で繋がなければ文字列として判定される、という認識でいいのでしょうか?
420:Name_Not_Found
11/09/30 18:44:52.46
evalだから
421:Name_Not_Found
11/09/30 19:03:30.62
ローカル変数を使いたいならこう書きます
window.setTimeout(function(){b(d)},1000);
422:Name_Not_Found
11/09/30 19:07:21.93
>>417
実装は整ってないけど、setTimeout には第三引数もあるんだぜ
document.forms['F1'].elements['T1'].value の値を使えばいい気もするけど
423:Name_Not_Found
11/09/30 19:31:48.00 uL/Qm+vu
画像がロード済みかどうかを確認するにはimg要素のonloadで判断するけど
すでにキャッシュされているとIEではonloadが発生しないから固有のクエリを付けて毎回ロードする
ってのはなんか本末転倒のような気がするんですがこの方法しかないんですか?
424:Name_Not_Found
11/09/30 19:41:32.35
>>420
ありがとうございます
知らなかったのでググってみて少し謎が解けた感じがしました
VBからC++に移行したときよりもよく理解できない感じがしてたのですが
evalについてググってみたら少しもやもやが解けた気がします
>>421
ありがとうございます
{}の中では使えても、()の中では使えない仕様になっているんですね
難しいですね
>>422
ありがとうございます
たしかにそのやり方もあったのですが、まだまだ勉強段階ですので
問題は回避せずになるべくこの方法でやりたいと思ってたのですが、結局分らず
質問してしまいました。実用するときはそのやり方も検討してみます。ありがとうございます。
425:Name_Not_Found
11/10/01 01:46:48.75
>>352
横スクロールなんてしない。
426:Name_Not_Found
11/10/01 07:20:27.87
{ 'key': "あ" }
{ key: "あ" }
どちらが推奨されますか?
427:Name_Not_Found
11/10/01 11:12:54.49
日ごとに変わるリストをテーブルで表示したいんだけど、
メンテのしやすさを考えてarrayの中に要素を書かず、
外部ファイルに要素だけ並べて書いて、
それを読み込んだ上で配列に入れテーブル表示ってできますか?
表の中身の要素数は変わる事なく、
要素の内容は変わる事あり。
428:Name_Not_Found
11/10/01 11:23:22.99
データをタブとかカンマ区切りなどにスレば可能。
XMLHttpRequestでデータ受けてその文字列をsplit("~~")で配列になる。
429:Name_Not_Found
11/10/01 11:43:39.09
>>426
オブジェクトリテラルならどちらでも良い
前者はシングルクォート、ダブルクォートが統一されていなくて気持ち悪い
JSONならどちら不可
430:Name_Not_Found
11/10/01 13:20:51.96 VMIGeHw3
現在のページのリクエストメソッドを取得する方法はありますか?
通常のGETか、POST(した後のレスポンス)かを判別したいのですが・・
431:Name_Not_Found
11/10/01 13:52:48.06
jQueryのtoggle(function1,function2,・・・) に相当する 機能を、
クリック操作以外で実現する方法ないないでしょうか?
今やりたいのはキーイベントで実行する機能をトグルさせることなので、
キーイベントをトグルさせるでも普通のfunction内でトグルするでも構わんとです。
432:Name_Not_Found
11/10/01 13:53:53.10
あわわ・・・
×実現する方法ないないでしょうか?
○実現する方法はないでしょうか?