我有一个网页,其中点击一个元素,使用JQuery post函数从服务器获取图像,并应在新窗口中显示,该窗口应调整为图像的大小。相关的Javascript函数如下(其中myImage是以base 64格式返回的图像)。
function showPicture(label) {
var newWindow = window.open("", label,"scrollbars=0, toolbar=0");
$.post( 'picture-view', { labelname: label },
function(myImage) {
newWindow.document.write("<img src='data:image/png;base64," + myImage + "'/>");
newWindow.resizeTo(newWindow.document.getElementsByTagName("img")[0].width, newWindow.document.getElementsByTagName("img")[0].height+newWindow.outerHeight-newWindow.innerHeight);
newWindow.focus();
}
);
}
有三件事情正在困扰我:
- 插入的图片在新窗口中有一个白色边框,我不知道如何去掉。
- 术语
newWindow.outerHeight-newWindow.innerHeight
用于调整窗口大小时应考虑工具栏等,但两者都输出为零。 - 这最后一点真的很烦人。如果我在从第四行开始的回调函数中放置代码行
var newWindow = window.open("", label,"scrollbars=0, toolbar=0");
,那么新窗口将被创建得太小,resizeTo函数也无法更改它的大小。
style="border:0;"
或者border="0"
来设置边框。 - RTBstyle="border:0;"
应该有效并且绝对不会被弃用。同时,有效的HTML图片应该带有替代文本属性,如alt=""
。 - RTB