Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何从图像文件中打开带有维度的弹出窗口?_Javascript_Image_Popup - Fatal编程技术网

Javascript:如何从图像文件中打开带有维度的弹出窗口?

Javascript:如何从图像文件中打开带有维度的弹出窗口?,javascript,image,popup,Javascript,Image,Popup,我正在将大量HTML内容迁移到新平台。源文件在标记中包含宽度和高度信息,但这些尺寸标注是错误的 我想打开一个弹出窗口中的图像,但与源文件的正确尺寸。我已经用链接到弹出脚本的锚点替换了所有原始标记 我遇到的问题是,如果我使用HTML文档中提供的宽度和高度,弹出窗口太小;但只要我在打开弹出窗口之前添加javascript读取真实尺寸(使用naturalHeight和naturalWidth属性),图像就会在一个新选项卡中打开,弹出窗口不再启动 以下是弹出代码: <script type="te

我正在将大量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>
我还尝试修改弹出脚本以读取属性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不一定有效


我真的不知道这到底出了什么问题,但我希望我已经清楚地解释了我想要实现的目标。我的wopen函数是否可以在事先不知道大小的情况下以正确的大小打开?

此位
函数getimagewidth(i){var x=new Image;x.src=i;return x.naturalWidth;}
默认情况下不会在chrome中打开新选项卡。我不知道你为什么会看到这样的情况,但是如果真的发生了,我的建议是:在你的html页面上有一个隐藏的图像;在那里加载图像,然后获得宽度;然后在弹出窗口中打开。谢谢你的建议。我现在就试试。
var win = window.open( same parameters as above, replacing w and h with rw and rh )
win.resizeTo(rw, rh);