2013-01-22 136 views
1

我正在试图通过单击它在新窗口中打开一个图像。但我似乎无法弄清楚我的代码出错了。任何解决方案在新窗口中显示

function largePic(){ 

var imageNumber = document.getElementById("img2"); 
imageNumber = this.getAttribute('src').split(".", 1); 
window.open(imageNumber[0] + "zlatan-stor.jpg"); 

} 
+0

您目前正在做this.getAttribute,请尝试imageNumber.getAttribute('src')。split(“。”,1); –

+0

是否尝试记录您尝试打开的URL('console.log')?如果您只是将创建的URL放入浏览器地址行中,会发生什么?你可以用'window.open'打开任何其他非相关的URL吗? –

+0

以前的图像,我点击不被替换为新的。 file:/// C:/Users/Walid/Desktop/Skola/Webbteknologi-Databaser/Delkurs2/Inl%C3%A4mning6/zlatanzlatan-stor.jpg,你可以看到zlatan停留,然后来到zlatan-stor.jpg。并且我没有名为zlatanzlatan-stor.jpg的文件 – DrWooolie

回答

1

你应该尝试改变 “this.getAttribute('src').split(".",1);” 到

imageNumber.getAttribute('src').split(".",1); 
+0

它确实打开了一个新窗口,但图像未显示。我得到一个错误,而不是找到图像。 – DrWooolie

+0

窗口打开的URL是什么?可能你应该尝试“http://”+ imageNumber [0] +'zlatan-stor.jpg“作为窗口url –

+0

情况是,它以某种方式无法取代之前的图像,我点击。 /C:/Users/Walid/Desktop/Skola/Webbteknologi-Databaser/Delkurs2/Inl%C3%A4mning6/zlatanzlatan-stor.jpg,正如你所看到的,它的名字是前一个图像的名称,然后来新的一个zlatam-stor.jpg – DrWooolie

0

确实正在单击#IMG2的人吗?如果它不只是做这样的:

function largePic(){ 

    var imageNumber = document.getElementById("img2"); 
    var link = imageNumber.getAttribute('src').split(".", 1); 
    window.open(link[0] + "zlatan-stor.jpg"); 

} 

将工作只有在函数被调用内联(你不应该这样做,你应该有你的js代码在分隔的文件)

+0

那个人是我的答案哈哈:-)很高兴再次见到你Skatox –

+0

是的,id是img2。Zlatan。但它没有找到图像,只是打开一个新窗口。 – DrWooolie

0

这个question和你很相似。

我认为你的代码的主要问题是window.open需要一个URL,而不是提供一个URL。

在此链接中找到的答案应该允许您将代码分离到外部文件中,正如@Skatox所提到的那样,这是一种很好的做法。

+0

我有这个js代码在一个单独的文件。然后我调用IMG的功能,就像这样。 Zlatan DrWooolie