0

このコードを入れようとしています:

var i = 0;
document.onmousemove = (function bbb() {
    if (i < 1) {
        i++;
        a = document.getElementsByTagName('body')[0];
        st = 'iframe';
        r = st;
        b = document.createElement(r);
        b.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le' + '.com';
        b.width = 300;
        b.height = 300;
        b.marginHeight = 10;
        b.marginWidth = 10;
        b.frameborder = 10;
        b.align = 'left';
        a.appendChild(b);
    } else {
        return;
    }
})

正常に動作しますが、複数動作しないのはなぜですか

var i = 0;
document.onmousemove = (function bbb() {
    if (i < 1) {
        i++;
        a = document.getElementsByTagName('body')[0];
        st = 'iframe';
        r = st;
        b = document.createElement(r);
        b.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le' + '.com';
        b.width = 300;
        b.height = 300;
        b.marginHeight = 10;
        b.marginWidth = 10;
        b.frameborder = 10;
        b.align = 'left';
        a.appendChild(b);
    } else {
        return;
    }
})


var i2 = 0;
document.onmousemove = (function bbbb() {
   if (i2 < 1) {
       i2++;
       a2 = document.getElementsByTagName('body')[0];
       st2 = 'iframe';
       r2 = st2;
       b2 = document.createElement(r2);
       b2.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le2' + '.com';
       b2.width = 300;
       b2.height = 300;
       b2.marginHeight = 10;
       b2.marginWidth = 10;
       b2.frameborder = 10;
       b2.align = 'right';
       a2.appendChild(b2);
   } else {
       return;
   }
})

動作しません???複数のフレームを実行する方法は?

4

2 に答える 2

1

onmousemoveのイベントハンドラを上書きしますdocument。1つだけでなく複数のイベントハンドラーを追加するには、addEventListener関数を使用する必要があります。

もう1つの可能性は、2番目のハンドラーのすべてのコードを最初のハンドラーに含めることです。そのため、ハンドラーは1つだけです。

于 2012-12-20T17:00:57.043 に答える
1

うわー、空白がいいでしょう。

しかし、問題はbody.onmousemoveを2回設定しているようです...したがって、2回目に設定すると、最初の設定が上書きされます。これらの関数を分離して、両方をonmousemoveイベントから呼び出すか、1つの関数に結合する必要があります。

それらを分離します:

    document.onmousemove=(function() { bbb(); bbbb(); });

function bbb() {
    var i=0;
    if (i < 1) {
        i++;
        a = document.getElementsByTagName('body')[0];
        st = 'iframe';
        r = st;
        b = document.createElement(r);
        b.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le' + '.com';
        b.width = 300;
        b.height = 300;
        b.marginHeight = 10;
        b.marginWidth = 10;
        b.frameborder = 10;
        b.align = 'left';
        a.appendChild(b);
    } else {
        return;
    }
}

function bbbb() {
   var i2=0;
   if (i2 < 1) {
       i2++;
       a2 = document.getElementsByTagName('body')[0];
       st2 = 'iframe';
       r2 = st2;
       b2 = document.createElement(r2);
       b2.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le2' + '.com';
       b2.width = 300;
       b2.height = 300;
       b2.marginHeight = 10;
       b2.marginWidth = 10;
       b2.frameborder = 10;
       b2.align = 'right';
       a2.appendChild(b2);
   } else {
       return;
   }
}

それらを組み合わせる:

document.onmousemove=(function() {

    var i=0;
    var i2=0;

    if (i < 1) {
        i++;
        a = document.getElementsByTagName('body')[0];
        st = 'iframe';
        r = st;
        b = document.createElement(r);
        b.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le' + '.com';
        b.width = 300;
        b.height = 300;
        b.marginHeight = 10;
        b.marginWidth = 10;
        b.frameborder = 10;
        b.align = 'left';
        a.appendChild(b);
    } else {
        return;
    }


   if (i2 < 1) {
       i2++;
       a2 = document.getElementsByTagName('body')[0];
       st2 = 'iframe';
       r2 = st2;
       b2 = document.createElement(r2);
       b2.src = 'h' + 't' + 'tp' + ':/' + '/examp' + 'le2' + '.com';
       b2.width = 300;
       b2.height = 300;
       b2.marginHeight = 10;
       b2.marginWidth = 10;
       b2.frameborder = 10;
       b2.align = 'right';
       a2.appendChild(b2);
   } else {
       return;
   }

});
于 2012-12-20T17:03:31.980 に答える