如果图像'src'是'(未知)'替换为'missing.png'

时间:2017-02-21 17:23:00

标签: javascript image replace

如果数据库中未提供图像,我的CMS会生成img src =“(未知)”。我想在发生这种情况时使用javascript将其更改为img src =“/ images / missing.png” 作为一个完整的JS菜鸟,我尝试了几个黑客,但似乎没有工作...任何想法? (如果有任何不同,页面上可能会有多个图像)

4 个答案:

答案 0 :(得分:14)

如果您使用onError事件处理丢失的图片src

,这应该对您有用
<img src="main_img.png" onError="this.onerror=null;this.src='/images/missing.png';" />

答案 1 :(得分:2)

我用它来解决我遇到的类似问题(使用javascript)...

const images = document.querySelectorAll("img");

images.forEach((image) => {
  let imgsrc = image.getAttribute("src");
  if (imgsrc === "") {
    image.src = "/images/missing.png";
  }
});

答案 2 :(得分:0)

如果您使用的是 php,那么这个问题肯定会发生,您可以使用 esc_url($url)

esc_url 函数解决问题

答案 3 :(得分:-1)

如果您在页面加载时动态注入src,则可以随时检查并交换占位符。

import UIKit
import QuartzCore 

class Circle: UIView {


    @IBOutlet var updater: CADisplayLink!
    var x: CGFloat = 0
    var y: CGFloat = 0
    var b: Board!


    override func draw(_ rect: CGRect) {
        UIColor.black.set()
        let updater = CADisplayLink(target: self, selector: #selector(Circle.gameLoop))
        updater.add(to: RunLoop.current, forMode: RunLoopMode.commonModes)
        updater.preferredFramesPerSecond = 1
        b = Board(frameWidth: self.frame.width)
        b.createGrid().stroke()
    }

    func gameLoop(){
        b.moveDown(x: x, y: y).stroke()
        y = y + 1

    }

}