我正在使用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中解决此问题需要做什么?请不要讨论框架为什么或不是一个好主意。虽然在大多数情况下,事情可以通过不同方式完成,但仍有一些具体用途。
答案 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
访问框架,其他人可以使用name
或id
,这显然是不正确的。 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>