如何从javascript调用Clearbox3照片库?

时间:2012-03-15 20:26:20

标签: javascript html image anchor lightbox2

我有一个网页,其上有一个锚点列表,使用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>

我的&#34;其他&#34; control(目前是一个asp.net ImageButton - &gt;映射到一个输入控件,如下所示:

<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(),也不是我能够使用&#34; CB_Open重建另一个图库(&#39; href = mycontent ,, parameter2 = value 2,,parameter3 = value 3 ,, ...&#39;);&#34;在clearbox页面上定义的语法。 .click()不会起作用,因为它a)它在浏览器中不一致,但b)更多,因为它实际上与点击链接的用户不一样。此外,使用CB_Open脚本重建一个重复的图库似乎不是一个非常理想的选项(也不能使它工作)和.click()只是不能使用clearbox,因为它不是实际上与用户点击相同。

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

基本上,我想知道是否有办法将另一个控件(可能是另一个锚点,但可能没有库中的图像,以避免重复和/或上面列出的问题)?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

stackoverflow回答:

解决。我没有使用输入控件来启动点击,而是将其切换为锚控件(内部有图像)并设置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] + "');";