2015-06-18 25 views
0

我正在使用Javascript在不同的框架中使用onclick打開頁面。在最後一次測試時,我已經有了這個工作,但昨天我意識到它不再適用於Chrome。我重新測試了其他瀏覽器,並且仍然按預期工作。我知道當談到Javascript時,Chrome可能會有點挑剔,我只是不確定如何解決。新框架中的內容不在Chrome中工作

<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中的問題?並請避免討論爲什麼框架是或不是一個好主意。雖然在大多數情況下可以通過不同方式完成,但仍有一些具體的用途。

+1

兩個問題:1)呈現的輸出實際上在頁面中看起來像什麼 - 你能發表嗎? 2)您是否在Chrome控制檯日誌中看到任何錯誤? –

+0

@JamesThorpe沒有輸出,因爲點擊圖片不再有任何效果。控制檯日誌也不顯示任何內容。所有其他瀏覽器仍能正常工作。 – aantiix

+0

我的意思是呈現的HTML輸出實際上是Chrome看到的頁面的源代碼 - 即不是您在上面發佈的aspx上運行的aspx –

回答

0

問題已解決。我認爲Chrome需要訪問id,其他人可以使用nameid,這顯然是不正確的。 Chrome需要框架name。因此,在我的框架集頁面上,除了id之外,我還添加了一個name屬性,並且所有內容都根據需要再次運行。

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

如果你真的需要在這種情況下使用超鏈接,防止其默認行爲做return false;,而不是return true;

但是,如果你不需要它 - 只需使用圖像而不超鏈接(增加造型的鼠標,如果需要):

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

試過以上兩種方法,仍然沒有改變。 – aantiix

+0

如何使用'top.frames ['main']。location.href'而不是'top.frames ['main']。location'? –

+0

試過上面的評論,仍然沒有改變。 – aantiix