【问题标题】:Broken asp:image in safari browser破碎的asp:Safari浏览器中的图像
【发布时间】:2015-11-12 11:47:06
【问题描述】:

我正在使用这样的 ASP.net 图像标签。

<asp:Image ID="Image6" runat="server" ImageUrl='<%#Eval("DeviceStatusFlag")%>' alt=''/>

现在,当 ImageURL 为空白时,通常会在某些浏览器(如 Firefox)中显示损坏的图像,但在使用 ält='' 后,这些浏览器不会显示任何内容来代替图像,这很好。 但在 Safari 浏览器中,我仍然看到一个 ? ImageURL 为空时标记图片图标。

也试过用这个,

 <asp:Image ID="Image6" runat="server" ImageUrl='<%#Eval("DeviceStatusFlag")%>' AlternateText = '' GenerateEmptyAlternateText='true' />

但它也不适用于 Safari。

如何为 Safari 解决这个问题?

【问题讨论】:

    标签: javascript html asp.net vb.net safari


    【解决方案1】:

    首先我怀疑这是一个 asp:image 问题,如果你用标准的 HTML img 标签替换它,我可以想象它会做同样的事情。

    显然 safari 想要以这种方式渲染空的 src 属性。如果它是空的,您可以使用 JavaScript 将其隐藏,或者添加透明图像而不是任何内容。

    我个人认为有一个空的图像 src 不是一个好习惯。

    您还可以使用带有背景图像 src 的 div,它将无作为设置处理。

    编辑:alt 标签是用于关闭图像或用于可访问性的替代文本。虽然这可能会改变某些浏览器的行为,但这不是它的意图。

    编辑 2。

    隐藏你的 asp.net 服务器控件。

    <asp:Image ID="Image6" runat="server" visible="False" ImageUrl='<%#Eval("DeviceStatusFlag")%>' alt=''/>
    

    在服务器端更改ImageUrlVisible 可能更容易。

    <asp:Image ID="Image6" runat="server">
    

    如:

    Image6.Visible = False
    Image6.ImageUrl = DeviceStatusFlag
    

    获取被渲染的&lt;img标签的实际渲染url。

    使用

    Image6.ClientID
    

    您可以将其轻松嵌入到 HTML 中,如下所示:

    <script>
    
    function setImageVisibility() {
      var imageID = "<%=Image6.ClientID%>",
          imageElement = document.getElementById(imageID);
    
      if(imageElement) {
         if(imageElement.src === "") {
               imageElement.style.visibility = "hidden";
         }
      }
    
    }
    
    setImageVisibility();
    
    </script>
    

    【讨论】:

    • 如果为空,我如何使用 Javascript 隐藏它的任何线索。我试过了,但它没有找到“Image6” id。
    • 我还按照msdn.microsoft.com/en-us/library/…中的指示使用了 GenerateEmptyAlternateText 属性
    • 好的,这是一个更广泛的问题。 Image6 是服务器上的 ID,它可能是也可能不是渲染的 ID。有一个服务器端属性 ClientID 将为您提供图像的 ID。但是,您需要将该 id 获取到前端,以便您可以访问它。如果图像不会更改,如果没有源,只需在服务器上将其标记为 visible=false。否则提及后端是什么语言,asp.net forms/Mvc
    • 任何示例代码都会有所帮助。我不确定我是否清楚地理解了这一点。我是 Asp.net 和 Javascript 的新手。
    • 是 c# , asp.net 形式吗?或 mvc 或 vb.net
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2017-10-28
    • 2023-03-25
    • 2021-08-10
    • 1970-01-01
    • 2017-08-24
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多