のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,432,643人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレ+ JavaScript の質問用スレッド vol.115 +

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

701 = :

innerHTMLのバグが一つだけだと確信している時点でいろいろとダメだな

702 = :

あのーこれは脆弱性の話なんですから、
innerHTMLで書き換えると壊れるんじゃなくて
innerHTMLに入れる文字の話でしょう?

703 = :

初めから>>680を出していたならここまで荒れなかっただろうに
質問の仕方がお粗末だったな

704 = :

どれが質問者か区別つかないし、>>680で確定なのかも怪しいよ
質問者だけはわかってるんだろうけどね

705 = :

荒らすための質問だからな。

706 = :

これがアスペフィルタの人なのか?
いろいろと酷い

707 = :

こんな奴と一緒にすんなカス

708 = :

あの人もわさと曖昧な質問をしてたからまあ、似たようなものか

709 = :

<script>
var canvas;
var c;
function draw() {
c.fillText("test", 10, 20);
}
function init() {
canvas = document.getElementById("canvas1");
c = canvas.getContext("2d");
}
</script>
は通るのに
var canvas = document.getElementById("canvas1");
var c = canvas.getContext("2d");
として外部変数にするとエラーがでるのはなぜでしょうか

710 = :

内部変数にすると、の間違いじゃなくて?

内部変数にすると、で正しければ
init内でvar ~と宣言した変数は、init内でのみ使えて、init外では使えなくなるのです。
そして、外で同じ名前の変数があった時は、その内容を変えず維持します。
a="1111";
function test(){
var a="2222";alert(a);
};
test()//2222と表示される(test内部でa=2222となっている)
alert(a);//1111と表示される(外側のaは2222になっていない)

711 = :

>>709
その init() が呼び出されるタイミングと
var canvas = document.getElementById("canvas1");
が評価されるタイミングが違うんでないのか

getElementById は文書が(より正確にはその要素が)読み込まれていない時点で呼び出されたなら、当然 null を返す

713 = :

みなさんありがとうございます
>>711
<body onload=init()>
var canvas = document.getElementById('sample');
var ctx = canvas.getContext('2d');
function init() {
ctx.clearRect(0, 0, 200, 200);
ctx.fillRect(0, 0, 10, 10);
}
これはまだ読み込まれていないのですか?

714 = :

上の方で言ってる問題って
フォーム関係の要素に``が入っていたらinnerHTMLが文字化けするってことですか?

715 = :

それと文字化けは関係ない

716 = :

>>713
その記述のみから断言はできないがおそらくそうだろう
スクリプト実行と DOM の読み込みタイミングについて調べるべし

onload はDOMと画像などのリソースが読み込まれた後に実行されるので
canvas = ... , ctx = ... を init()の中に入れればおそらく動く
内部変数とかは関係ない

717 = :

>>715
じゃあ何と関係があるんですか?

718 = :

質問者はもちろん回答者もこの問題の本質を分かっていないように正直みえるのですが・・。
問題の本質は何でしょうか?

719 = :

>>718
最初の質問 >>663 で innerHTML はバグとか言っている所から
誤解と混乱を生じさせたことが問題

バグとは仕様に沿わない実装のふるまいを意味するものであり
セキュリティ云々とは関係ない

の意味の「問題」は質問の中には元々存在していない

720 = :

いや、バグはありますよね?

721 = :

でもDOMが壊れるってのは否定されましたね。

722 = :

元の質問はこの際どうでもいいですが
質問者はinnerHTMLに問題があるということを報告をしたのですから
それについては認識しておくべきでは?

723 = :

<div id="hoge">
~HTMLの表・10KB分~
</div>
という大きめの表がHTML内にあって、
同じHTMLページ内に全く同じ「~HTMLの表・10KB分~」を
もう一度表示させたいのですが、
1行くらいでサクッと表示できるScriptはないでしょうか?

725 = :

>>723
html
<div id="hoge">
~HTMLの表・10KB分~
</div>
<div id="fuga">
</div>

javascript
document.getElementById('fuga').innerHTML = document.getElementById('hoge').innerHTML;

727 = :

>>725
ありがとうございました!
ずっとHTMLの容量ばかり食って困っていたんです

728 = :

>>719
ちょっと違うね

729 = :

>>719
innerHTMLで書き換えるとDOMが壊れる事でXSSを発生させる原因になる
セキュリティと関係ない話ではない
これで話がわからないともうあなたは話の輪に入れないから食いつかないほうが良い

730 = :

>>726
function hogeEach(array,m) {
if (array.length-m>1) {
array.forEach(function(_element, _index, _array) {
if (_index<m) { return; }
console.log(_element);
});
} else { return m; }
return array.length;
};

var arr = [1,2,3];
var index = arr.length;

// update
arr.push(4);
arr[arr.length] = 5;
index = hogeEach(arr,index);

// update
arr.push(6);
arr.push(7);
index = hogeEach(arr,index);

// update
arr.push(8);
index=hogeEach(arr,index);

// update
arr.push(9);
index=hogeEach(arr,index);

731 = :

>>729
innerHTMLの読み出しがおかしいだけだから「domが壊れる」はおかしい
domは壊れない

732 = :

>読み出し
>読み出し
>読み出し
>読み出し
>読み出し

733 = :

え、どうしたの
発狂したの

734 = :

もう触んないほうがいいって

735 = :

人をdisりたいだけの奴らがこれだけいるんだから、語彙には注意すべきだよなとは思うわ

736 = :

どう見ても人をディスりたいだけの奴の意見だな

737 = :

http://www.koizumi-lt.co.jp/product/webcatalog/index.html
このサイトの「カタログを開く」をクリックしてwebブラウザで表示されるpdfファイルを
全ページ一括でローカルに落とす方法ってありますか?

特にJavaScriptを勉強をしているわけではないのですが
リンク先のアドレスがjavascript:akarih1();と表示されているので質問させて貰いました
スレ違いでしたらすいません・・・

738 = :

スレ違いじゃなくて、板違いだねw

739 = :

勉強しているわけではないのでしたら今から勉強してください

740 = :

innerHTMLが脆弱性を起こすのではなくて、
エスケープしてないから脆弱性を起こすという話

SQLはインジェクションを起こすから
使うなといっているようなもんw

741 = :

そんな話じゃないだろw

742 = :

>>740
そんな表面的な話じゃない
もっと深い内部仕様の話

744 = :

「innerHTMLで読み取ったら」でした
もしそうならDOMから読むとかしないといけないのでしょうか

746 = :

引数の順番についてですが、
挿入するデータと挿入される要素があったとしたら
どっちが先になると思いますか?

insertHoge(data, element)
insertHoge(element, data)

dotch?

747 = :

質問です

var i=0;
function fun(){
if(i==0){
  i++;
  fun();
 }else{
  return 999;
 }
}

function print_1(){
 var hoge =fun();
 alert(hoge);
}
とやるってprint_1()を実行するとundefinedが表示されます
関数を2回実行されるとタイムラグみたいなのが発生するんでしょうか?

748 = :

>>747
そのコードは次と等価になる

var i=0;
function fun(){
if(i==0){
  i=2;
  return undefined;
 }else{
  return 999;
 }
}

749 = :

>>748
やっぱ1回目のが返り値として入っちゃうんですか
fun(){
func()
}
でもちゃんと2回目の返り値が入るまで待ってもらう方法ってないんですかね?

750 = :

>>749
>待ってもらう
何を求めているのかわからん
1 回目と2回目から先は どうふるまわせたいのだ?

>>748 訂正
× i=2;
× i=1;

>>745
>しかも、要素を処理する順番は決まっていないし、指定もできない
そんな筈は無い
for in と取り違えてないか?


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について