2013-06-04 144 views
0

我想使用谷歌瀏覽器擴展程序獲取網頁的鏈接(URL)。獲取鏈接的問題在於HTML頁面可以實現我想要的但擴展沒有實現相同的代碼。我的意思是相同的代碼適用於HTML網頁,但不適用於谷歌瀏覽器擴展程序儘管兩者都用HTML頁面編碼,但可能存在一些限制,可能會阻止我實現代碼。如何使用Google Chrome擴展程序獲取鏈接(URL)

這是我的HTML頁面。

<html> 
<head> 
</head> 
<body> 
    <form> 
     <h1> 
      LinkLet 
     </h1> 
     Email the Link <input type="text" name="myinputbox" class="form1"   id="myinputbox"><br> 
    </form> 
</body> 

這是我的JS頁面,選擇link.This頁面正在同時在瀏覽器獨立運行,但在與Chrome擴展程序捆綁不起作用。

chrome.browserAction.onClicked.addListener(function(activeTab) 
{ 
var newURL = "Link.html"; 
chrome.tabs.create({url: newURL}); 
}); 
var url = document.URL; 
var elem = document.getElementById("myinputbox"); 
elem.value = url; 

我的清單文件

{ 
"background" :{ 
"scripts" : ["background.js"] 
}, 
"manifest_version" :2, 
"name": "My Extension", 
"version": "1.0", 
"description": "Opens up a local webpage", 
"icons": { "1": "1.png" }, 

"browser_action": { 
"default_title": "Hi123", 
"default_icon": "1.png" 
}, 
"permissions": [ 
"tabs" 
] 
} 
+0

你的清單文件在哪裏? 'var url = document.URL;'如果它在除內容腳本以外的任何其他頁面中,將永遠不會獲取所需的URL – Sudarshan

+0

我也嘗試過tab.url方法,但它也無法正常工作。我想要拾取頁面的URL我在此之前按下擴展按鈕/圖標。 –

回答

0

如果您正在尋找拿起您目前按分機鍵/圖標之前的頁面的URL。

使用下面的代碼。

chrome.tabs.query({ 
    "active": true,//fetch active tabs 
    "currentWindow": true,//fetch tabs in current window 
    "status": "complete",//fetch completely loaded windows 
    "windowType": "normal"//fetch normal windows 
}, function (tabs) { 
    for (tab in tabs) { 
     console.log(tabs[tab].url);// Use this URL as needed 
    } 
}); 

它可以消除以上的努力。

P.S:var elem = document.getElementById("myinputbox");上面的代碼將永遠不會在後臺頁面工作,因爲缺少元素。

+0

是var a = console.log(tabs [tab] .url); correct.i想將鏈接存儲在一個變量中,並在我點擊圖標時打開的網頁上顯示。 –

+0

@KshitijMarwah'var _somename = tabs [tab] .url;'是正確的語法,如果你正在尋找的URL存儲。 – Sudarshan

+0

先生,那麼我怎麼能存儲當前標籤網址後,你已經寫的代碼如何可以保存console.log? –

相關問題