GVKun编程网logo

如何使用img元素的onerror属性(简述img元素常用的属性及作用)

34

对于想了解如何使用img元素的onerror属性的读者,本文将提供新的信息,我们将详细介绍简述img元素常用的属性及作用,并且为您提供关于css中如何使用border属性与display属性、html

对于想了解如何使用img元素的onerror属性的读者,本文将提供新的信息,我们将详细介绍简述img元素常用的属性及作用,并且为您提供关于css中如何使用border属性与display属性、html – React中img标记中的onError、html – 为什么Chrome的img元素的onerror事件只触发一次?、html – 如何使用img元素的onerror属性的有价值信息。

本文目录一览:

如何使用img元素的onerror属性(简述img元素常用的属性及作用)

如何使用img元素的onerror属性(简述img元素常用的属性及作用)

CSS:

.posting-logo-div {  }.posting-logo-img { height:120px; width:120px; }.posting-photo-div { height:5px;width:5px;position:relative;top:-140px;left:648px; }.posting-photo-img { height:240px; width:240px; }

HTML:

<div id="image"><img src="../images/some-logo1.jpg" onerror="this.src=''../images/no-logo-120.jpg'';"></div><div id="photo"><img src="../images/some-logo2.jpg" onerror="this.src=''../images/no-logo-240.jpg'';"></div>

这似乎不适用于Chrome或Mozilla,但确实适用于IE。

答案1

小编典典

这有效:

<img src="invalid_link"     onerror="this.onerror=null;this.src=''https://placeimg.com/200/300/animals'';">

正如尼古拉在下面的评论中指出的那样,如果备用网址也无效,某些浏览器将再次触发“错误”事件,这将导致无限循环。我们可以通过简单地通过取消“错误”处理程序来避免这种情况this.onerror=null;

css中如何使用border属性与display属性

css中如何使用border属性与display属性

border属性介绍

  • border属性设置元素边框。
  • 边框3个要素如:粗细、线型、颜色。

边框线型属性值说明表如:

属性指 描述
none 定义无边框。
hidden 与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
dotted 定义点状边框。在大多数浏览器中呈现为实线。
dashed 定义虚线。在大多数浏览器中呈现为实线。
solid 定义实线。
double 定义双线。双线的宽度等于 border-width 的值。
groove 定义 3D 凹槽边框。其效果取决于 border-color 的值。
ridge 定义 3D 垄状边框。其效果取决于 border-color 的值。
inset 定义 3D inset 边框。其效果取决于 border-color 的值。
outset 定义 3D outset 边框。其效果取决于 border-color 的值。
inherit 规定应该从父元素继承边框样式。

边框方向属性值说明表如:

属性 描述
border-top 设置元素上边框。
border-bottom 设置元素下边框。
border-left 设置元素左边框。
border-right 设置元素右边框。

边框实践

  • 实践代码:
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>边框</title>
  <style>
    
     .box{
        width: 200px;
        height: 100px;
        border: 1px solid red;
     }
  </style>
</head>

<body>
   <div>
     微笑是最初的信仰
   </div>
</body>

</html>
  • 结果图

  • 注意:边框颜色可以省略不写,默认为黑色。如果其他2个属性不写就不会显示边框。

  • 设置元素边框方向实践

  • 代码块

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>边框</title>
  <style>
    
     .box{
        width: 200px;
        height: 100px;
        border-top: 2px double red;
        border-bottom: 2px ridge lawngreen;
        border-left: 2px  inset darkorange ;
        border-right:2px groove darkblue;
     }
  </style>
</head>

<body>
   <div>
     微笑是最初的信仰
   </div>
</body>

</html>
  • 结果图

display属性介绍

  • display属性它是显示的意思,display属性可以将行内元素与块级元素之间相互转换,将隐藏的元素设置显示状态或将显示的元素设置隐藏状态。
  • display属性值说明表如下:
属性值 描述
inline 将块级元素转换为行内元素。
block 作用:1、将行内元素转换为块级元素。2、将隐藏的元素设置为显示状态。
none 将显示的元素设置为隐藏状态。

display属性实践

  • 使用display属性的属性值为blockspan标签设置宽高度并且设置一个背景颜色。
  • 代码块

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>将span标签转换为块级元素</title>
  <style>
     .box{
        width: 200px;
        height: 100px;
        display: block;
        background-color: red;
     }
  </style>
</head>

<body>
   <span>微笑是最初的信仰</span>
</body>

</html>
  • 结果图

  • 注意:如果行内元素使用了display: block;,就拥有了块级元素特点。

  • 使用display属性的属性值为inlineh1标签转换为行内元素。

  • 代码块

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>将h1标签转换为行内元素</title>
  <style>
     .box{
        width: 200px;
        height: 100px;
        display: inline;
        background-color: red;
     }
  </style>
</head>

<body>
   <h1>微笑是最初的信仰</h1>
</body>

</html>
  • 结果图

  • 注意:如果块级元素使用了display: inline;,就拥有了行内元素特点。

原文出处:https://www.cnblogs.com/lq0001/p/12093858.html

html – React中img标记中的onError

html – React中img标记中的onError

我想用react中的默认图像替换断开的链接.我通常会使用onerror,但它没有按预期工作.具体来说,我得到了“在现有状态转换期间无法更新(例如在渲染中)”的重复错误.最终,出现默认图像,但需要很长时间(此错误的许多打印).这是一个非常类似的问题: react.js Replace img src onerror.我尝试了这个解决方案(排名第一,不使用jQuery),但它导致了所描述的错误.我猜onError必须不断被触发,从而导致不断重新渲染.任何替代解决方案/修复?
import React from 'react';
import { connect } from 'react-redux';
//import AddImageModal from '../components/AddImageModal.js';
import Button from 'react-bootstrap/lib/Button';
//import { getPostsByUserId } from 'actions'
import Posts from '../components/Posts.js';
var Modal = require('react-modal');
require('../../styles/AddImageModal.scss');
import { save_post } from '../actions';

 const customStyles = {
  content : {
    top                   : '50%',left                  : '50%',right                 : 'auto',bottom                : 'auto',marginRight           : '-50%',transform             : 'translate(-50%,-50%)'
  }
};

var MyWallScreen = React.createClass({

  getinitialState: function() {
    return { 
      modalisOpen: false,imageUrl: "" 
    };
  },openModal: function() {
    this.setState({modalisOpen: true});
  },afterOpenModal: function() {
    // references are Now sync'd and can be accessed. 
    this.refs.subtitle.style.color = '#f00';
  },closeModal: function() {
    this.setState({modalisOpen: false});
  },setUrl: function(e,val) 
  {
    if (e.keyCode === 13) 
        {
          this.setState({
            imageUrl: val
          });
        }
  },resetimageUrl: function()
  {
    this.setState({
      imageUrl: ""
    });
  },onError: function() {
    this.setState({
      imageUrl: "default.jpg"
    });
  },render: function() {
    const { userPosts,dispatch } = this.props;
    return (
      <div>
        <button onClick={this.openModal}>Add Image</button>

        {/* The meat of the modal. */}
        <Modal
          isOpen={this.state.modalisOpen}
          onAfterOpen={this.afterOpenModal}
          onRequestClose={this.closeModal}
          style={customStyles} >

        <div className="modalBox">
          <h2 className="modalBanner">Add an image link</h2>
          <input ref="urlInput" 
                className="modalinput"
                onKeyDown={e=>this.setUrl(e,this.refs.urlInput.value)}/>
          {this.state.imageUrl ?
            <img className="modalimage" 
                  src={this.state.imageUrl}
                  onError={this.onError()}/>
            :<div className="modalimage"></div>
          }
          <div>
            <Button className="modalButton" bsstyle = "success" 
                onClick = {() => {
                dispatch(save_post(0,this.state.imageUrl));
                this.closeModal();
                this.resetimageUrl();
                }}>
                Post
            </Button>
            <Button className="modalButton" bsstyle = "danger" 
                onClick = {() => {
                  this.closeModal();
                  this.resetimageUrl();
                }}>
                Cancel
            </Button>
          </div>
        </div>
        </Modal>


        <Posts posts={userPosts}/>
      </div>
    );
  }
});


function mapStatetoProps(state,ownProps) {
  return {
    userPosts: state.posts[0]
  }
}


MyWallScreen = connect(mapStatetoProps)(MyWallScreen);

export default MyWallScreen;

解决方法

代码调用this.onError而不是传递对它的引用.每次调用render都会调用this.onError().删除括号,看看是否修复了它:
<img className="modalimage" 
  src={this.state.imageUrl}
  onError={this.onError()}/> // `onError` is being called here

固定版本:

<img className="modalimage" 
  src={this.state.imageUrl}
  onError={this.onError}/> // `onError` is being passed as a reference here

html – 为什么Chrome的img元素的onerror事件只触发一次?

html – 为什么Chrome的img元素的onerror事件只触发一次?

当所有其他浏览器(IE7,8,9,FF,Opera和Safari)都重复调用它时,为什么Chrome只调用img元素的onerror事件?

有没有办法强制它再次重复攻击(在Chrome中)?

jsfiddle

HTML:

<div id="thisWorks">
    this works in Chrome. onerror event is called once.
    <img src="http://www.asdfjklasdfasdf.com/bogus1.png" 
        onerror="fixit(this);" 
        rsrc="http://eatfrenzy.com/images/success-tick.png" />
</div>

<div id="thisDoesNotWork">
    this does not work in Chrome. onerror event is not called twice.
    <img src="http://www.asdfjklasdfasdf.com/bogus1.png" 
        onerror="fixit(this);"
        rsrc="http://www.asdfjklasdfasdf.com/bogus2.png|http://eatfrenzy.com/images/success-tick.png" />
</div>

JAVASCRIPT:

function fixit(img)
{
    var arrPhotos = img.getAttribute('rsrc').split('|');

    // change the img src to the next available
    img.setAttribute('src',arrPhotos.shift());

    // Now put back the image list (with one less) into the rsrc attr
    img.setAttribute('rsrc',arrPhotos.join('|'));

    return true;    
}

编辑:
根据@Sunil D.关于Chrome由于initial fiddle示例中www.asdfjklasdfasdf.com域名无效而未发布新查询的评论,我继续更改域名以匹配成功图片的域名,但是不同的文件名所以它仍然是404.这将证明它不是无效的域名导致Chrome在第二次尝试时纾困.

编辑:
更新了小提琴,并将jquery的使用简单地删除,并将其排除在外.

解决方法

我尝试过上面提到的方法,setAttribute(‘src’,null)有副作用,即添加另一个请求.

最后,我用

setTimeout(function(){ imgElement.src = 'http://xxxx'; },0)

,这个有效!

例如,请参见jsfiddle.

html – 如何使用img元素的onerror属性

html – 如何使用img元素的onerror属性

CSS:

.posting-logo-div {  }
.posting-logo-img { height:120px; width:120px; }
.posting-photo-div { height:5px;width:5px;position:relative;top:-140px;left:648px; }
.posting-photo-img { height:240px; width:240px; }

HTML:

<div id="image"https://www.jb51.cc/tag/logo/" target="_blank">logo-div"><img src="../images/some-logo1.jpg" onerror="this.src='../images/no-logo-120.jpg';"https://www.jb51.cc/tag/logo/" target="_blank">logo-img"></div>
<div id="photo"><img src="../images/some-logo2.jpg" onerror="this.src='../images/no-logo-240.jpg';"></div>

这在Chrome或Mozilla中似乎不起作用,但在IE中可以使用.

解决方法

这有效:

<img src="invalid_link"
     onerror="this.onerror=null;this.src='https://placeimg.com/200/300/animals';"
>

现场演示:http://jsfiddle.net/oLqfxjoz/

正如nikola在下面的评论中指出的,如果备份URL也无效,某些浏览器将再次触发“错误”事件,这将导致无限循环.我们可以通过this.onerror = null;简单地取消“错误”处理程序来防范这种情况.

今天关于如何使用img元素的onerror属性简述img元素常用的属性及作用的讲解已经结束,谢谢您的阅读,如果想了解更多关于css中如何使用border属性与display属性、html – React中img标记中的onError、html – 为什么Chrome的img元素的onerror事件只触发一次?、html – 如何使用img元素的onerror属性的相关知识,请在本站搜索。

本文标签: