0

我有一个网页,上面有一个锚点列表,它使用 clearbox3 将它们显示为画廊。只有第一个锚点有一个文本链接,可以点击“查看照片(3)”。其他的只是将图像放入 clearbox 画廊。这很好用。我需要的是一种通过用户单击另一个控件来调出 clearbox 图像库的方法。我正在尝试从 asp.net ImageButton 控件(映射到输入标签)中进行操作,但也尝试过仅使用锚点,但没有运气。

clearbox 图片库的锚点如下所示:

<a id="photoLink" href="http://tempo5.sandicor.com/SNDImages/221/071064797_101_12.jpg" rel="clearbox[gallery=929 Border Ave, Del Mar, California, 92014,,tnhrf=http://tempo5.sandicor.com/SNDImages/221/071064797_101_12.jpg]">View Photos (6)</a>
<a href="http://tempo5.sandicor.com/SNDImages/221/071064797_201_22.jpg" rel="clearbox[gallery=929 Border Ave, Del Mar, California, 92014,,tnhrf=http://tempo5.sandicor.com/SNDImages/221/071064797_201_22.jpg]"></a>
<a href="http://tempo5.sandicor.com/SNDImages/221/071064797_301_22.jpg" rel="clearbox[gallery=929 Border Ave, Del Mar, California, 92014,,tnhrf=http://tempo5.sandicor.com/SNDImages/221/071064797_301_22.jpg]"></a>

我的“其他”控件(当前是一个 asp.net ImageButton --> 映射到一个输入控件,如下所示:

<input type="image" name="ctl00$ContentPlaceHolderCol2$mainPropertyPhoto" id="ctl00_ContentPlaceHolderCol2_mainPropertyPhoto" src="http://tempo5.sandicor.com/SNDImages/221/071064797_101_12.jpg" />

最后,在这里我尝试从 ImageButton/Input 控件中的 onClick 属性调用的 javascript 不适用于 clearbox(并且不支持跨浏览器):

<script type="text/javascript">
    function clickPhotoLink()
    {
        document.getElementById("photoLink").click();
    }
</script>

我的问题是:如何从另一个控件(例如输入控件)中调出我使用上面的锚点列表设置的 clearbox 库?我已经尝试在输入上使用 onClick 属性(与 asp.net 的 onClientClick 属性相同)来运行脚本,但是在列表中的第一个锚点上调用 .click() 时没有运气,我也无法使用“CB_Open('href=mycontent,,parameter2=value 2,,parameter3=value 3,, ... ');”重建另一个完全相同的画廊 clearbox 页面上定义的语法。.click() 不起作用,因为它a)在浏览器之间不一致,但b)更是如此,因为它实际上与用户单击链接不同。此外,使用 CB_Open 脚本重建一个重复的画廊似乎不是一个非常理想的选择(我也不能让它工作)和 .

因此,我可以将 ImageButton(输入控件)更改为锚点,并将 href 设置为我正在显示的画廊中的第一个;然后将另一个锚点列表设置为从列表中的图像 #2 开始。但是,当用户单击文本链接“查看照片 (3)”时,它将在第二张照片的索引上显示透明框,而不是第一张。所以这可行,但也不是一个理想的解决方案,因为我需要它出现并显示第一张照片(来自两个地方),这对于 clearbox 没有意义,因为锚点的 href 指向图像 2 而不是 1 .

基本上,我想知道是否有办法从另一个控件(甚至可能是另一个锚,但没有来自画廊的图像以避免重复和/或问题)调出我已经定义/创建的 clearbox 画廊与页面上定义的锚点列表相关联上述)?

任何帮助是极大的赞赏。

4

1 回答 1

0

堆栈溢出答案:

解决了。我没有使用输入控件来启动单击,而是将其切换到锚控件(内部带有图像)并设置 href 属性以直接执行脚本,而不是弄乱“onclick”和“rel”(由clearbox) 属性来显示 clearbox 图像库。

生成的html是这样的:

<a href="javascript:CB_Open('gallery=929 Border Ave, Del Mar, California,  92014,,href=http://tempo5.sandicor.com/SNDImages/221/071064797_101_12.jpg');" id="ctl00_ContentPlaceHolderCol2_mainPhotoAnchor" class="mainPhotoAnchor"><img src="http://tempo5.sandicor.com/SNDImages/221/071064797_101_12.jpg" class="mainPhotoImage" /></a>

我背后的 asp.net 代码是这样的:

HtmlAnchor mainPhotoAnchor = new HtmlAnchor();
mainPhotoAnchor.InnerHtml = "<img src=\"" + arrPhotoUrls[0] + "\" class=\"mainPhotoImage\" />";
mainPhotoAnchor.HRef = "javascript:CB_Open('gallery=" + displayAddress + ",,href=" + arrPhotoUrls[0] + "');";
于 2012-03-16T04:57:52.057 回答