2011-09-01 215 views
0

我已經從外部網站將內容加載到帶有jQuery的Div中,但是當我點擊加載內容中的鏈接時,它將打開它自己的頁面。有沒有辦法限制鏈接打開頁面,同時仍然包含在Div中?jQuery在Div中加載外部內容,鏈接問題

+0

你能提供一個鏈接到有問題的頁面嗎?聽起來這可能是一些事情,但很難說沒有看到它。 –

回答

0

刪除的唯一方法是將所有鏈接的「href」屬性設置爲「#」,如我所想。請在下面找到相同的代碼。

$("#div").find("a").attr("href", "#") 

希望這是有用的!

+0

我認爲OP正試圖說他希望鏈接在div內打開,而不是完全禁用鏈接。 – Artyom

0

您將不得不使用iframe而不是div來獲得簡單的解決方案。

或者,由於您所說的內容來自外部網站,因此我相信您知道如何獲取跨不同domain的內容。你可以試試這個。

$("divContainer a").click(function(e){ 

    //Prevent the default behavior of the link so it will not redirect to href. 
    e.preventDefault(); 

    var url = this.href; 

    //Now using this url get the external content and load it into the DIV 

}); 
0

您有至少3周的煩惱有:

  1. 可能的版權法侵犯,如果你沒有使用材料的許可。

  2. 違反安全規定。所有的AJAX請求通常必須來自同一臺服務器。除非用戶和ISP嚴格降低其安全設置,否則其他任何內容都會被安全功能疑爲惡意代碼。

  3. Windows和框架被製成包含網頁。 Div標籤不是。您將不得不將文件剝離到只有一些內體內容才能顯示在div中。彈出窗口是一個窗口,而不是一個div。

從ShankarSangoli

使用IFrame的建議,這是最好的解決方案。

0

你可以只刪除目標屬性中加載的內容鏈接::

$("#div").find("a").attr("target", ""); 

這應該避免在新窗口中打開鏈接。

雖然問題是如何從其他網站使用jQuery獲取內容? 這應該不可能?

0

您顯然應該提供一些源代碼,以便爲我們提供有關正在發生的事情的線索。

在我的經驗(自學jquery noob).load的東西有很多問題,有些時候你用「返回false」來解決它。在所有命令的末尾爲了「防止默認」的交互。

其他時候,你只需清理代碼,如html標籤......它可能是一切,提供代碼。