ASP.net:在图像渲染过程中触发即时客户端脚本

时间:2012-04-14 19:20:41

标签: asp.net

我有一个Web应用程序,可以在另一个aspx页面上创建图表。有时,无法根据规范创建图形,因为用户规范中存在错误(例如需要整数的字符串)。

我想立即弹出一个警告窗口,告诉他们在我尝试渲染图形时出现了问题。

问题是,我不知道如何立即检查是否应该为警报窗口插入脚本。一旦执行了我在“chart.aspx”(图像URL)上的代码,我就不知道如何从主页面立即检查是否有任何问题。我知道它发生在chart.aspx的代码中,但除了不渲染图像或渲染不同的图像之外,我不知道如何在另一个回发之前告诉用户。在呈现其中一个图像之后,我真的想看看页面生命周期中是否存在任何排序或事件或阶段。

如果无法做到这一点,我怎么能将chart.aspx传送给default.aspx的错误信息,如果它只是一个图像。也许是某种Response.Write(......?)

再次感谢你们。

1 个答案:

答案 0 :(得分:1)

也许您可以尝试通过javascript监控图片的加载事件并处理onabort和onerror?

http://www.w3schools.com/jsref/dom_obj_image.asp

图像对象事件

Event      The event occurs when...  
onabort    Loading of an image is interrupted
onerror    An error occurs when loading an image
onload     An image is finished loading

旧学校这样做的方式是渲染你的图片标签如下:

<img src="chart.aspx" onerror="alert('Image failed to load because XYZ.');" />

如今,我建议您使用jquery,如下所示:

<img src="placeholder.gif" class="chart" alt="chart">

<script type="text/javascript">
    jQuery(function($) {
        var img = $(document.createElement('img'));
        img.on('error', function() { alert ('...'); });
        img.on('load', function() { $('img.chart').attr('src', img[0].src); });
    });