当创建气泡CreatePopupMessage指定src对应的url地址,加入在url里面采用get的形式添加参数与参数值到url中。所在的html页面里面如果是动态添加图片到页面中,可能会导致图片无法获取,,但是单独打开对应的页面又能直接显示图片出来。如以下代码:
var src = m_basePath+"/map/jsp/infowindow/checkmPicInfowindow.html?"+"&addr="+addr+"&date="+date+"&picpath="+filepath;
var popupMsg =createPopupMessage("巡检照片",src,30,360,220);
在src对应的页面中获取参数值并且将图片地址动态添加到div中
var picpath=getQueryString("path");
var bigImg = document.createElement("img"); //创建一个img元素
bigImg.src=picpath; //给img元素的src属性赋值
bigImg.width="320"; //320个像素 不用加px
bigImg.height='320';
var myDiv = document.getElementById('picDiv'); //获得dom对象
myDiv.appendChild(bigImg); //为dom添加子元素img
此时打开气泡不能显示图片,但是单独打开html页面地址是正常显示的。后来还发现如果是在html中写入的src地址是写死的,也是可以显示的,就是不能动态添加。
经过本人不停地调试,终于发现原来skyline的创建气泡createPopupMessage()方法中的src的url中代有参数时,参数后面的值须为字符串,尤其是带有数字,字母斜杠等特殊字符组合在一起的时候,并且在将字符串通过单引号进行组装使其变成“‘ashdajscacabjc1234/sdaj/7snjx’”这样的字符串,才能被skyline的src获取,跳转到相应界面。这应该是个例,如果出现我这里描述的情况,可以试一下这种方法。
比如我这里的filepath已经是字符串了,作为src的参数时候将其改成,
var src = m_basePath+"/map/jsp/infowindow/checkmPicInfowindow.html?"+"&addr="+addr+"&date="+date+"&picpath="+"'"+filepath+"'";//注意红色的字体。
这个时候气泡就能显示出来内容,但是picpath在新的界面中的值变成了带有单引号的字符串,再在新页面中将该值的单引号进行替换即可,如下代码
var path=picpath.replace("/\'/g","");