简体   繁体   中英

why changing source of image , execute my inline javascript

Hi guys i just created a webpage , that use pagemethods like this

function get_frame() {
    //send a request to change image named "1.jpeg" in path of "src/frames/1.jpeg"
    PageMethods.GrabFrame(imgw, imgh, t, f);
}

function t() {
    //refresh image source to new image and set timer
    document.getElementById('dImg').src = "src/frames/1.jpeg?" +
    new Date().getTime();
    setTimeout(function () { get_desktop(); }, Main.IMGrefresh.value);
}

function f() {
    //do nothing
    var x = 0;
}

And also used an inline javascript with jquery like this

<script>
    $("#cover").mousemove(function (e) {
        var parentOffset = $(this).parent().offset();
        var relX = e.pageX - parentOffset.left;
        var relY = e.pageY - parentOffset.top;
        move_mouse(relX, relY);
    });
</script>

And some asp.net clientside code like this

<div id="dDiv">
    <img id="dImg" alt="" src="" />
    <div id="cover">
    </div>
</div>

That the inline javascript is at the end of that html code

So move_mouse() method must run only when user move his mouse, it moves correctly but it moves even when mouse didn't have movement when image refreshes, i mean when image refreshed by javascript, it runs move_mouse method, too.

Css for these elements

#cover {
    position:absolute;
    top:0px;
    left:0px;
    text-align:center;
    background-color:Black;
    height:200px;
    width:300px;
    border:0px none black; 
    margin:0px auto 0px auto;
    filter: alpha(opacity=1);
    -moz-opacity: 0.01;
    -khtml-opacity: 0.01;
    opacity: 0.01;
}

#dDiv {
    position:relative;
    text-align:center;
    background-color:Black;
    height:200px;
    width:300px;
    border:0px none black; 
    margin:0px auto 0px auto;
}

#dImg {
    background-color:Black;
    height:200px;
    width:300px;
    border:0px none black; 
    margin:0px 0px 0px 0px;
}

And also they are changing in javascript

function resize() {
    imgh = Main.IMGheight.value;
    imgw = Main.IMGwidth.value;
    $("#dDiv").css("height", imgh);
    $("#dDiv").css("width", imgw);

    $("#dImg").css("height", imgh);
    $("#dImg").css("width", imgw);

    $("#cover").css("height", imgh);
    $("#cover").css("width", imgw);
}

Ahh i just found it myself AGAIN , just move the mouse event to js function and put it in body onload , because inline javascript methods are saved in catch and this command => "new Date().getTime();" make it to refresh and get the new method , so this triggers the event .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM