zoukankan      html  css  js  c++  java
  • 解决javascript动态改变img的src属性图片不显示问题

    首先讲下这个bug的出现的情况,页面中有<a href="JavaScript:void(0)" onclick="document.getElementById('current').src=

    ‘images/001.jpg’;“>这么一个a标签,onclick中的JS代码就是改变id为current的img标签的src属性,以达到动态切换图片的效

    果。可是不幸的是:IE是动态改变的图片的路径,但是图片却不显示出来,得右键“显示图片”才能看到改变后的图片,不知是什

    么原因,但据说是<a href="javascript:void(0)">或者<a href="#">这样使用a标签的话并不能阻止a标签最后触发一个什么行为,

    导致ie6会错误的认为页面刷新或者重定向了,并且中断了当前所有连接,这样新图片的加载就被aborted了(不知真假),不管原

    因是真是假,下面就先说下解决方案吧

    简单的解决方法: 
    1、<a href="javascript:void(0)" onclick="document.getElementById('current').src=‘images/001.jpg’; return false;“

    >;就是在代码后面加上return false;即可
    2、把A换成SPAN等

    问题代码

     1 function getNewCaptcha(obj, ct){
     2     var oImg = obj.getElementsByTagName('img')[0];
     3     var capId = obj.getElementsByTagName('input')[0].value;
     4     if(!capId){
     5         capId = genCapId(obj, ct);
     6     }
     7     if(capId){
     8         oImg.src = '/captcha?c=' + capId + '&r=' + Math.random();
     9         oImg.style.display = 'block';
    10         oImg.onerror = function(){
    11             imgError(oImg);
    12         }
    13         obj.onclick = function(){
    14             getNewCaptcha(obj);
    15                         return false;
    16         }
    17     }else{
    18         imgError(oImg);
    19     }
    20 }

    15行为新加的return false,加上以后IE6就OK了

  • 相关阅读:
    HTML5新媒体元素
    概述
    (一)最小可行化应用
    JSON
    ajax的工作原理
    R语言学习笔记(四)
    R语言学习笔记(一)
    转:禅道的数据库结构
    转:bug的分类和等级
    转:如何定义 Bug 的优先级
  • 原文地址:https://www.cnblogs.com/coolid/p/5447105.html
Copyright © 2011-2022 走看看