fancyBox画廊链接将不会在prettyPhotoIframe内的IE中启动
本文关键字:内的 prettyPhotoIframe IE 启动 链接 fancyBox | 更新日期: 2023-09-27 18:26:36
在我的DotNetNuke网站上,我创建了一个模块,该模块使用数据表来显示组织成员希望出售的一些物品。ItemName
列是指向名为ItemView.aspx
的aspx项目的链接,此页面包含有关从父页面上的链接或dnn模块上的ItemName
列填充的项目的详细信息。这是链接:
<td><p><a href="http://www.mysite.com/traderboard/ItemView.aspx?ItemName=<%# Eval("ItemName") %>&num=<%# Eval("num") %>&ImageAlt1=<%# Eval("ImageAlt1") %>&ImageAlt2=<%# Eval("ImageAlt2") %>&ImageAlt3=<%# Eval("ImageAlt3") %>?iframe=true&width=800&height=600" style="border: 0px currentColor;" rel="prettyPhoto[iframes]"><%# Eval("ItemName") %></a>
一旦进入ItemView
页面(在prettyPhoto Iframe中调出),如果用户决定上传任何图片,则会向他显示一个链接。
以下是我用来在.aspx
文件中填充特定用户图像的jQuery片段:
$("#hplImageTest").click(function () {
$.fancybox.open([
{
href: '<%=Image1%>',
title: 'My title'
}, {
href: '<%=Image2%>',
title: '2nd title'
}, {
href: '<%=Image3%>'
}
], {
helpers: {
thumbs: {
width: 75,
height: 50
}
}
});
});
最后,我调用位于ItemView
页面上的链接上的图像。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblRow.Text = Request.QueryString["num"];
PostPath1 = Request.QueryString["ImageAlt1"];
PostPath2 = Request.QueryString["ImageAlt2"];
PostPath3 = Request.QueryString["ImageAlt3"];
Image1 = "http://www.mysite.com/" + PostPath1;
Image2 = "http://www.mysite.com/" + PostPath2;
Image3 = "http://www.mysite.com/" + PostPath3;
string empty = "../images/tbimages/noImage.jpg";
if ((PostPath1 == empty) && (PostPath2 == empty) && (PostPath3 == empty))
{
hplImageTest.Text = "No Images Available";
}
else
{
hplImageTest.NavigateUrl = "javascript:;";
hplImageTest.Text = "Click here for Image(s)";
}
}
}
它适用于Firefox、Safari和Chrome,但在IE中没有给我任何帮助。其他人遇到过这个问题吗?
我想明白了。我的朋友向我指出,如果iFrame中调用的页面不在同一服务器上,IE将禁止在页面上触发链接。当两个页面都在同一台服务器上并且在同一个DNN安装下时,被调用的URL使用的URL与父页面不同。
因此,由于一个DNN安装中的所有URL都指向我服务器上的同一个文件夹,我认为将URL更改为与父页面相同应该没有害处。
有一次我换了这个
Image1 = "http://www.mysite.com/" + PostPath1;
Image2 = "http://www.mysite.com/" + PostPath2;
Image3 = "http://www.mysite.com/" + PostPath3;
到此:
Image1 = "http://www.myparentsite.com/" + PostPath1;
Image2 = "http://www.myparentsite.com/" + PostPath2;
Image3 = "http://www.myparentsite.com/" + PostPath3;
IE开始工作!我希望你们会发现这个有用!