2011-07-27 36 views
4

我創建一個Chrome擴展的樂趣,但我得到了我的彈出頁面的問題。我用jQuery的load()函數來加載網頁存在的一部分,讓我們說:http://aaa.comChrome擴展彈出頁面鏈接不起作用

<div id="aaa-news"> 
$(document).ready(function(){ 
    $("#ox-news").load("http://aaa/News/ .news_list"); 
}); 
</div> 

因爲我試圖加載到popup.html頁的部分包含一些鏈接,但似乎這些HREF屬性鏈接已被Chrome修改,只要它們被加載到popup.html.So即使我使用chrome.tabs.create。* API來打開一個新標籤,它總是會顯示我

沒有找到網頁的網頁: Chrome擴展程序:// phigdpgmolbpdcihdohfpbafibncbkhl /新聞/ 1 錯誤6(net :: ERR_FILE_NOT_FOUND):文件或目錄可能不被發現。

任何人有想法?讚賞您的幫助!

+0

你是說你要加載外部(不包含帶有擴展名)頁面的內容到您的彈出式和內加載相關鏈接無法正常打開?如果是這樣,我能想到的唯一干淨的解決方法是將鏈接的源代碼改爲絕對的(例如''而不是'' 如果無法更改源(即它不屬於你),那麼你可能必須要聰明,使鏈接絕對的,如果他們是相對 – Alasdair

+0

@Alasdair:。準確指出!首先,我無法更改源代碼,所以我想也許我可以將相對鏈接更改爲絕對鏈接,但是這有很多硬編碼,我如何動態更改它們?如果他們更新網站,添加一個更多新聞? – jianinz

+0

不幸的是,這不是一件容易的事情,我只能建議你留意你的鏈接改變的來源。如果它們是簡單的相關鏈接(例如'News/1'),那麼你可以簡單地在源頁面如果它們有鏈接,那麼這可能會變得複雜更復雜('../ News/1','/ News/1'等)。我只是偶然發現了[這個腳本](http://www.phpied.com/relative-to-absolute-links-with-javascript/),這可能會有所幫助,但我現在沒有時間去測試它。祝你好運! – Alasdair

回答

6

若要修復相對鏈接,您可以使用<base>標籤。這也是有益的,使各個環節裏面彈出來的選項卡設置target="_blank"打開(否則聯繫變得不可點擊):

<base href="http://aaa/" /> 
<base target="_blank" /> 
+0

感謝您的帖子,但我的問題是,當我從其他網站提取並在popup.html頁面中嵌入時,href屬性的鏈接地址將被修改通常它應該: 「HTTP:// AAA/BBB/C」,如今卻變成了 「鉻:// phigdpgmolbpdcihdohfpbafibncbkhl/BBB/C」,我想你說的是什麼,但似乎不工作我代替標籤與。標記,在標記中添加目標=「_ blank」屬性,但它不起作用... – jianinz

+0

是的,我確定鏈接已被替換,可能是由於外部頁面源代碼中的相對鏈接。我在想,即使我在''內添加'',但我無法修改所有相關鏈接,這是太多的工作... – jianinz

相關問題