2013-08-06 30 views
0

在我的DotNetNuke网站上,我创建了一个模块,它使用数据表来显示我的组织的成员希望出售的一些项目。 ItemName列是指向名为ItemView.aspx的aspx项目的链接,该页面包含有关从父页面上的该链接填充的项目或dnn模块上的ItemName列的项目的详细信息。这里是链接:fancyBox画廊链接不会在IE浏览器里面发射prettyPhoto Iframe

<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&amp;width=800&amp;height=600" style="border: 0px currentColor;" rel="prettyPhoto[iframes]"><%# Eval("ItemName") %></a> 

一旦ItemView页面(这是在prettyPhoto的Iframe拉),如果用户决定上传他会看到一个链接的任何图片上。

这里是jQuery的片段,我用我的.aspx文件来填充特定的用户图片:

$("#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中并没有提供任何内容。有其他人遇到这个问题吗?

回答

0

我想通了。我的朋友向我指出,如果在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开始工作!我希望你们会觉得这很有用!