2017-04-11 3 views
0

Chromeの拡張機能を作成する際には非常に新しく、コンセプトを把握するのに最悪の時間があります。コンテンツから背景へのURLの受け渡し

私がやりたいことは、現在ブックマークしているページのすべてのリンクを強調する拡張機能を作成することです。

私は現在、自分のやり方を感じ、リンクをつかんでバックグラウンドページに渡そうとしていますが、私にとってはうまくいかないようです。私がリンクを通過しようとすると、何も得られません(またはオブジェクト{}と終わりのないさまざまな矢印を示す海)。私が "hello"のような何かを渡すと、うまく動作するようになります。私はいくつかの指摘に感謝したいと思います。

内容:

// Get all the links on the page. 
var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    console.log(links[i]); 
chrome.runtime.sendMessage(links[i]); 
} 

それが正常にコンテンツスクリプトからのリンクに戻るん。

背景

var links; 
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { 
console.log(request);    
}); 

マイバックグラウンドスクリプトはそれでより多くの持っていたが、ので、私はコードの最も基本的にそれをバック切り詰めてきたどのような方法で助けていないようでした。

これ以外の疑問はありませんが、現在の問題は私の進歩を妨げており、私が間違っていること(おそらく単純なこと)を把握できていません。

ありがとうございました。

+1

DOM要素はJSON対応ではありません(https://developer.chrome.com/extensions/messaging)。すべての 'href'の配列を渡すだけです。 – wOxxOm

+0

[ノードリストオブジェクトをバックグラウンドスクリプトに渡す方法は?](http://stackoverflow.com/questions/40881685/how-to-pass-nodelist-object-to-background-script) – Makyen

答えて

1

ありがとうございました!とても有難い。私は今正しい方向に動いています。

皆さん(おそらくあなたの一人)にとっては、リンク[i]の最後に.hrefを追加するだけで解決しました。

;

chrome.runtime.sendMessage(links [i] .href);

関連する問題