我想使用jquery,jstree和html显示很多图像。所有图像名称都是这样的。
<node_id>-serverA_cpu.png
<node_id>-serverA_mem.png
<node_id>-serverB_cpu.png
<node_id>-serverB_mem.png
当我在外部创建图像时,我给它们一个名为node_id的唯一标识符,该标识符与jstree node_id中的文本相同。当用户点击jstree上的节点时,我会显示以该节点ID开头的每个图像。当Web服务器和映像位于同一服务器上时,它可以正常工作。我这样做
var Img_CPU = "img/"+node_id+"-Server_cpu.png";
var Img_Mem = "img/"+node_id+"-Server_mem.png";
等
然后我使用jquery函数加载图像(如果存在)并获取它,如下所示:
$(function ()
{
var myImage1 = new Image();
$(myImage1).load(function ()
{
$("#div1").html(myImage1);
})
.attr('src', Img_CPU).error(function()
{
$('#div1').html("").css({"border": "", "margin": "0"});
})
});
当图像与IIS位于同一服务器上时,这一切都很有效。如果我的图像在另一台可通过http访问的服务器上,该怎么办?如果图像位于单独的服务器上,我该如何获取图像呢?
答案 0 :(得分:0)
当图片在另一个域上时,您必须将图片网址更改为绝对网址
var Img_CPU = "img/"+node_id+"-Server_cpu.png";
to
var Img_CPU = "http://anotherdomain.com/img/"+node_id+"-Server_cpu.png";
如果它仍然不起作用,那么我认为这是跨域政策(虽然这不适用于图像)