2016-05-07 10 views
0

まずは、クロムの拡張機能を初めて使うので、わかりません。拡張機能については、ユーザーがリンクを右クリックしてコンテキストメニュー項目を選択できるようにする必要があり、拡張機能にはの最後のというURLを送信する必要があります。クロムエクステンションでリダイレクトした後の最終ページURLを取得

特にアマゾンのアフィリエイトリンク。だから、例えば次のよう

http://www.amazon.com/gp/product/0470281731/ref=as_li_ss_tl?ie=UTF8&fpl=fresh&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-1&pf_rd_r=0WRZW1V7VVDJWS54WCM4& .....何とか何とか何とか

私は周りを見回していると私は見つけることができません。

http://amzn.to/1VO7dlp

がに変換を取得する必要があります任意の答え。私はSOLですか?

私がこれまで持っているコードはかなり基本的なものです:

//background.js 

chrome.runtime.onInstalled.addListener(function() { 
chrome.contextMenus.create({ 
    title: 'Add this Link', 
    id: 'linkContext', 
    contexts: ['link'], 
}); 
}); 

chrome.contextMenus.onClicked.addListener(function(data, tab) { 
    if (data.menuItemId === "linkContext") { 
     chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 
     chrome.tabs.sendMessage(tabs[0].id, 
      { 
      linkUrl: data.linkUrl, 
      }, 

      function(response) { 
      alert(response.host); 
      }); 
     }); 
    } 
}); 


chrome.runtime.onMessage.addListener(

//content_script.js 

function(request, sender, sendResponse) { 
    if (request.linkUrl){ 

     pathArray = request.linkUrl.split('/'); 
     protocol = pathArray[0]; 
     host = pathArray[2]; 
     url = protocol + '//' + host; 

     sendResponse({host: host}); 
    } 
}); 

//manifest.json 

{ 
    "name": "jQuery DOM", 
    "manifest_version": 2, 
    "version": "1.0", 
    "description": "Manipulate the DOM when the page is done loading", 
    "browser_action": { 
    "name": "Manipulate DOM", 
    "icons": ["icon.png"], 
    "default_icon": "icon.png" 
    }, 

    "background": { 
    "scripts": ["background.js"], 
    "persistent": false 
    }, 

    "permissions": [ 
    "contextMenus" 
    ], 

    "content_scripts": [ { 
    "js": [ "jquery.min.js", "content_script.js" ], 
    "matches": [ "http://*/*", "https://*/*"] 
    }], 

    "web_accessible_resources":[ 
    "menu.html", 
    "menu.css" 
    ] 
} 

私はこれまでかなり新しいので、私は不明だ言ったようにどうやって進める。私は "最終的なURL"を解析して、ユーザーに情報を提示することができます。 I.アフィリエイトID。しかし、私は上からの短縮リンクを使用することはできません。

+0

あなたは次のサービスを試すことができます:http://unshorten.it/api/documentation – rsanchez

+0

これは私がやるべきことだと思います。それ以上の検査では、この問題は純粋なJS/jQuery。これを回答として追加すると、正しいものとしてマークされます。 –

答えて

0

リダイレクトは、サーバーからの返信であるため、ヘッダーフィールドを読み取って、最初のURLがリダイレクトされるURLを確認することができます。

この場合、Chromeで新しいタブを開き、[ネットワーク]タブを開いて最初のURLに移動しました。次に、結果のページの完全なURLが表示される前に、2つの別々のリダイレクト(httpステータスコード301)が表示されました。

最終的なURLにアクセスできるようにするために、これをコードで実行することもできます。 :)

+0

私が言ったように、私はこれが初めてです。コード例を教えてください。私にとってだけでなく、ここに来る将来のgooglerにも役立ちます。 XMLHttpRequestのか、似たような経由でこれを行うことが難しいことができますように –

+0

私の悪い、私はこの1つにあまりにも速く答えたかもしれない、と思われます。 詳細については、このスレッドを参照してください。 http://stackoverflow.com/questions/16430901/get-final-url-from-xhr-object-after-redirect – MunchyYDL

関連する問題