在新框架中打开内容无法在Chrome中运行

时间:2015-06-18 19:55:53

标签: javascript google-chrome

我正在使用Javascript使用onclick在不同的框架中打开页面。我在最后一次测试时使用了这个工作,但昨天已经知道它在Chrome中不再有效。我重新测试了其他浏览器,它仍然按预期工作。我知道Chrome在Javascript方面可能有点挑剔,我只是不确定如何解决。

<asp:HyperLink ID="downloadReport" runat="server">
     <img  src="images/save.jpg" onclick="javascript:top.frames['main'].location = 'DownloadReport.aspx?<%= url %>';return true;" />
</asp:HyperLink>

在Chrome中解决此问题需要做什么?请不要讨论框架为什么或不是一个好主意。虽然在大多数情况下,事情可以通过不同方式完成,但仍有一些具体用途。

2 个答案:

答案 0 :(得分:0)

如果您确实需要在此方案中使用超链接,请执行return false;而不是return true;

来防止其默认行为

但是如果你不需要它 - 只需使用没有超链接的图像(如果需要,可以为光标添加样式):

<img  src="images/save.jpg" onclick="top.frames['main'].location = 'DownloadReport.aspx?<%= url %>'" style="cursor:pointer" />

答案 1 :(得分:0)

问题解决了。我认为Chrome需要id访问框架,其他人可以使用nameid,这显然是不正确的。 Chrome需要框架name。所以在我的frameset页面上,除了id之外我还添加了一个name属性,所有内容都根据需要再次运行。

<frameset rows="100,*" border="0">
   <frame name="top" id="top" runat="server" />
   <frame name="main" id="main" runat="server" />
</frameset>