Javascript:如何打开图像文件中尺寸的弹出窗口?

时间:2014-04-22 15:42:17

标签: javascript image popup

我正在将大量HTML内容迁移到新平台。源文件包含标记中的宽度和高度信息,但这些维度是错误的。

我想在弹出窗口中打开图像,但是使用源文件的正确尺寸。我已经使用链接到弹出脚本的锚替换了所有原始标记。

我遇到的问题是,如果我使用HTML文档中提供的宽度和高度,弹出窗口太小;但是只要我在打开弹出窗口之前添加javascript来读取实际尺寸(使用naturalHeight和naturalWidth属性),图像就会在新选项卡中打开,弹出窗口不再启动。

这是弹出代码:

<script type="text/javascript">
    function wopen(url, name, w, h) { //w and h are incorrect but available in the HTML
    w += 32; //padding for scrollbars and borders
    h += 96;
    var win = window.open(url,
    name, 
    'width=' + w + ', height=' + h + ', ' +
    'location=no, menubar=no, ' +
    'status=no, toolbar=no, scrollbars=no, resizable=yes');
    win.resizeTo(w, h);
    win.focus();
    }
</script>

我尝试使用简单的函数来获得真实的尺寸。例如,如果我在弹出脚本中调用下面的函数getimagewidth,则会在新选项卡中加载图像,而window.open方法不会创建弹出窗口。

function getimagewidth(i)
{
var x=new Image;
x.src=i;
return x.naturalWidth;
}

我还尝试修改弹出脚本以读取属性naturalWidth和naturalHeight,然后将这些属性传递给window.open或window.resizeTo。同样的事情发生了,因为引用该图像的任何代码行也会在新选项卡中打开它,并且弹出窗口不会启动。例如,我尝试添加这些行:

var x=document.getElementByID(url);
rw=x.naturalWidth;
rh=x.naturalHeight;

其次是

var win = window.open( same parameters as above, replacing w and h with rw and rh )

win.resizeTo(rw, rh);

只是为了添加锦上添花,页面必须在基于铬的专有浏览器中正常工作;这意味着win.resizeTo不一定有用。

我真的不知道这有什么问题,但我希望我已经清楚地解释了我想要完成的事情。有没有办法让我的wopen函数最初以正确的大小打开,事先不知道大小?

0 个答案:

没有答案