【问题标题】:How to have the browser load an image programmatically如何让浏览器以编程方式加载图像
【发布时间】:2014-12-03 00:19:41
【问题描述】:

我有(java)代码不时从自定义红外相机生成所有相同大小的PNG图像,目前,只是将它们保存在服务器空间之外。它们都具有相同的名称,并且最近的会覆盖前一个。

我可以在浏览器中向我的 dart 代码发送一条消息,说明图像可用于自动加载以显示在图像元素中。

我应该创建一个图像文件夹并将它们保存在那里吗?

浏览器将如何请求和显示图像?我正在为 html 使用端口 4955。

我是 dart、html 等方面的新手。

这是否允许我更改 DOM?

HTML

<div id='image-div'>
    <img alt='' id='image' src='resources/200C-B12.png'
          height='480' width='640'>
</div>

CSS
#image {

}

飞镖

ImageElement imageElement = querySelector('#image');

我想我想将上面的 ImageElement 更改为下面的,但不知道如何。

"<img alt='' id='image' src='imageDisplay/myimage.png'
          height='480' width='640'>";

我已经尝试了建议的方法来请求图像,但没有一个有效。最近的尝试如下。我有一条语句写入处理 HTTP 请求的 Dart 服务器代码中的日志文件,虽然在加载页面页面时有日志条目,但当我尝试请求不同的图像时没有日志条目。客户端页面确实收到了正确的图像路径,所以问题是我仍然没有理解正确的过程。

HTML 当前 - 想要将 src ... 替换为 src='displayImage/some_image.png'

  <div id='img-box'>
    <div id='image-div'>
      <div id='imgAnchor'>
        <img alt='' id='image' src='resources/fi_12_demo.png'
           height='480' width='640'>
      </div>
    </div>
  </div>

Dart 代码片段:

void displayNewImage(imagename) {   
  updateLog('display image = $imagename'); // imagename is correct
  var anchor = querySelector('#imgAnchor');
  anchor.children.clear;
  anchor.append(new ImageElement()
    ..innerHtml="<img alt='' id='image' src='$imagename' height='480px' width='640px'>");
}

我断定没有请求从客户端发送到我的 Dart 服务器。

【问题讨论】:

  • 您应该在 Chrome 开发人员工具 (F12) 中调查会发生什么。创建的 HTML 到底长什么样?浏览器是否发出请求?有什么错误吗?

标签: dart dart-html


【解决方案1】:

我认为动态添加&lt;img src="http://yourserver.yourdomain.com:4955/somefolder/someimg.png"&gt; 到您的HTML(通过Dart 代码)应该可以。如果更新的图像具有相同的名称,您可能会遇到缓存问题(浏览器不会从服务器加载图像,而是从缓存中加载它)。使用新名称存储每个图像可能会更容易。

【讨论】:

  • 我查看了我的代码并编辑了我的帖子。我想我知道需要做什么,但不知道该怎么做。这是我的第一个网页,我之前没有操作过 DOM。
  • 您通常会在 DOM 中放置一些元素,例如 &lt;div id="imgAnchor"&gt;&lt;/div&gt;。然后在您的代码中调用var anchor = querySelector(#imgAnchor); anchor.children.clear; anchor.append(new ImageElement()..src='imageDisplay/myimage.png'..height='480px'..width='640px'; 之类的东西,或者您可以像在问题中一样使用var img = querySelector('#image')..src='imageDisplay/myimage.png'..height='480px'..width='640px'; 之类的代码重用您的图像(这也很好)。
  • 我尝试了您的解决方案和我自己的解决方案,Gunter,但没有任何乐趣!我错过了一些东西。查看我的帖子的新编辑。
  • imageElement.setAttribute('src', imagename);其中 'imagname' 是图像相对于 web-root 的路径名。有用!!谢谢你引导我找到答案,Gunter。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 2011-12-30
  • 1970-01-01
相关资源
最近更新 更多