【问题标题】:hide broken img chrome extension隐藏损坏的图像 chrome 扩展
【发布时间】:2019-05-06 16:42:05
【问题描述】:

我的问题: 在 jsfiddle 上,我成功地隐藏了损坏的图像图标。但是,当加载到 Chrome 扩展程序上时,它不起作用:/

示例:

一些背景:“post.url”可能是也可能不是图像文件。如果不是,我想隐藏它。我该怎么做?

这是我当前的代码:

$("#art").append('<img id="img" src="' + post.url + '"onerror="this.style.display=\'none\'"/>');

【问题讨论】:

  • 也许你正在寻找这个stackoverflow.com/questions/9714525/…,如果它的url无效,那么你可以隐藏它
  • 是的,我看过那个帖子。但我不想使用它,因为 "function checkURL(url) { return(url.match(/\.(jpeg|jpg|gif|png)$/) != null); }" 因为许多 url 包含 gifv那也会显示损坏的图像。但是gif很好。所以我认为比赛也会返回 gifv
  • @KwokWenJian 不,正则表达式只匹配扩展名。
  • @MrLister 你是对的。谢谢!

标签: javascript jquery html css google-chrome-extension


【解决方案1】:

按照 Rahul 和李斯特先生的建议使用它来检查

function checkURL(url) {
    return(url.match(/\.(jpeg|jpg|gif|png)$/) != null);
}

【讨论】:

    【解决方案2】:
    1. 使用正确的开发工具 - 扩展弹出窗口有其自己的单独一个,可通过右键单击弹出窗口,然后单击“检查”来访问(请参阅 this answer 了解各种浏览器);
    2. 在正确的开发工具中,您会看到有关内联 JS 被阻止的错误;
    3. 因为extensions can't use inline JS by default(这是个好东西所以不要改变它),
      而是以编程方式附加 onerror 侦听器:

    $(`<img id="img" src="${post.url}">`).appendTo('#art').on('error', function() {
      this.style.display = 'none';
    });
    

    【讨论】:

    • 我不知道为什么,但是当我使用你的代码时,当它出错时,它不会运行之后的代码行
    • @KwokWenJian,感谢您的提醒,我已经修改了代码。
    • 现在完美运行 :) 麻烦您也检查一下这段代码吗?我也在尝试获取视频链接。有两个键(一个或另一个)来检索链接。所以我这样做:尝试 { $("#art").append(''); } catch(err) { $("#art").append(' ');它有效,但我应该这样做吗?有没有更好的办法?
    • 我不知道。可能是?我猜对于一个单独的问题来说,这似乎是一个不同的问题。
    猜你喜欢
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2018-05-25
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多