如何使用Javascript在新窗口中放大图像
我已经看到了很多使用jQuery的解决方案,但我只需要使用Javascript。我正在尝试编写一个脚本,将onclick侦听器附加到页面上的每个图像,并使用一个函数在一个新窗口中以其宽度和高度的两倍打开单击的图像。我遇到的问题是,新窗口在页面加载时打开,而不是在单击图像时打开,并且新窗口显示图像源为“未定义”,宽度和高度为“NaN”。这是我的.js:如何使用Javascript在新窗口中放大图像,javascript,image,Javascript,Image,我已经看到了很多使用jQuery的解决方案,但我只需要使用Javascript。我正在尝试编写一个脚本,将onclick侦听器附加到页面上的每个图像,并使用一个函数在一个新窗口中以其宽度和高度的两倍打开单击的图像。我遇到的问题是,新窗口在页面加载时打开,而不是在单击图像时打开,并且新窗口显示图像源为“未定义”,宽度和高度为“NaN”。这是我的.js: var x = document.images; var imageWindow; function magnify() { for (v
var x = document.images;
var imageWindow;
function magnify() {
for (var i = 0; i < x.length; i++) {
x[i].addEventListener('click', launchWindow(this), false);
}
}
function launchWindow(img) {
var h = img.height * 2.0;
var w = img.width * 2.0;
imageWindow = window.open();
imageWindow.document.write("<html><head><title>Image</title></head><body><img src=" + img.src + " width=" + w + " height=" + h + " alt='Magnified image'></body></html>");
if(window.focus) {
imageWindow.focus;
}
}
var x=document.images;
var图像窗口;
函数放大(){
对于(变量i=0;i
以及我的测试页面的相关HTML:
分配事件处理程序的循环实际上是在运行事件处理程序,而不是分配它。尝试这样做:
x[i].addEventListener('click', function() { launchWindow(this) }, false);
分配事件处理程序的循环实际上是在运行事件处理程序,而不是分配它。尝试这样做:
x[i].addEventListener('click', function() { launchWindow(this) }, false);
分配事件处理程序的循环实际上是在运行事件处理程序,而不是分配它。尝试这样做:
x[i].addEventListener('click', function() { launchWindow(this) }, false);
分配事件处理程序的循环实际上是在运行事件处理程序,而不是分配它。尝试这样做:
x[i].addEventListener('click', function() { launchWindow(this) }, false);
天哪,我真不敢相信问题就这么简单。非常感谢你!天哪,我真不敢相信问题就这么简单。非常感谢你!天哪,我真不敢相信问题就这么简单。非常感谢你!天哪,我真不敢相信问题就这么简单。非常感谢你!抱歉,它不会显示我的html,它在body标记中,onload=放大()。抱歉,它不会显示我的html,它在body标记中,onload=放大()。抱歉,它不会显示我的html,它在body标记中,onload=放大()。抱歉,它不会显示我的html,它在body标记中,onload=放大()。