のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,908人
昨日: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一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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