1

我有一个包含几张图片的目录,我想按下其中一张图片,并且在不离开我所在的页面的情况下更改我的一个 DIv 中的完整图像。

在网上搜索后,我发现了这个:

<a href="imagem(@picture.FullSizeImageUrl" ... >
<img src="@picture.ImageUrl" ... />
</a>

应该与这个 javascript 函数连接:

function imagem(txt) {
    document.getElementById("imagemgrande").innerHTML = "<img src='" + txt + "' alt=''/>" 

用 ID 将我想要的图像发送到我的 div imagemgrande

当我运行代码并将图像悬停时,浏览器底部显示的链接为我提供了我想要显示的图像的正确路径(这意味着 java 函数应该接收正确的路径)但是当我单击时,它不做任何事情。我认为图像标签可能被错误地创建,并alert(txt)document.getElementByID. 它甚至没有注册。

我忘记了什么,我没有声明 javascript 变量txt吗?

4

2 回答 2

2

为什么要调用 js 函数href?你应该这样做onclick

 <a href="#" onclick="return imagem(@picture.FullSizeImageUrl)" ... >

不要忘记return false;

function imagem(txt) {
    document.getElementById("imagemgrande").innerHTML = "<img src='" + txt + "' alt=''/>" 
return false;
}

编辑

您必须发送一个字符串作为参数才能showImage运行。我已经检查过了,它奏效了。

<a href="#" onclick="return showImage('/big_image.jpg')">
    <img src="/some_image.jpg"/>
</a>

<div id="imagemgrande"></div>

<script type="text/javascript">
function showImage(imgUrl) {
    try {
        document.getElementById("imagemgrande").innerHTML = "<img src='" + imgUrl + "' alt=''/>" 
    } catch(error) {
        alert(error);
    }
    return false;
}

window.onerror = function(errorMessage, url, line) {
    var errorText = 'message: ' + errorMessage + '\nurl: ' + url + '\nline: ' + line;
    alert(errorText);
}
</script>
于 2013-04-24T15:15:08.243 回答
0

使用 firefox 并查看错误控制台 -> 菜单工具 / 错误控制台

  1. 你检查图像路径是否正确 - 相对于页面?

  2. 测试它 - 通过浏览器中的路径以及页面文件夹是否显示?

  3. 仔细检查 - imagemgrande 是图像还是 div?如果它的图像:更改 src

    function imagem(txt) {
    
        alert(document.getElementById("imagemgrande"))//what does this say
    
        document.getElementById("imagemgrande").src = txt + "?d=" + new Date();//force webserver request, optional 
    

你也可以像这样使用href

  <a href="javascript:imagem('img/i1.jpg', 'imagemgrande')" > image 1 </a> 

查看图像更改

于 2013-04-24T14:07:40.637 回答