Chromeの右クリックコンテキストメニューを使用して背景画像のURLをユーザーに提供するために使用するChrome拡張機能を作成しています。JavaScriptを使用して、クリックされた要素(または最も近い子要素または背景要素を持つ親要素)の背景画像を見つけるにはどうすればよいですか?
今、私の問題は背景イメージを見つけることです。ユーザーが正しい要素を右クリックすると簡単です。 しかし、もし彼らがその要素の子をクリックすれば、私は両親を見なければならない。これを処理する最も効率的な方法は何ですか?
いくつかの注意事項:私は自分の内線番号をjQueryに挿入していません。そして、私はまた、望ましい背景画像の上に絶対的に配置された要素が途中で入るシナリオを考えました。しかし、私は現時点でそれに心配していません。
ここまでは私のコードです。クリックされた要素の内容がbackground-image
である限り動作します。 1つ見つからないと、まだ両親を見ていない。
document.body.addEventListener('contextmenu', function(ev) {
// get computed style
var style = window.getComputedStyle(ev.target, false);
// img src is inside 'url(' + ')' - slice those off
var src = style.backgroundImage.slice(4, -1);
console.log(src);
return false;
}, false);
さて、画像が選択された項目、またはルートまで、そのノードから任意の項目のいずれかであり得ます。だから、画像を見つけるまで、キューを上げていくだけです。最悪の場合、N個のアイテムが反復されて背景イメージが検索されます.Nはクリックからルートまでのノード数です。 – Fallenreaper