Google Chrome 拡張機能のページで見つかったメタデータを返そうとしています。background.js は、website.js ページにメタデータを要求します。ページがコンテンツを更新しているときにリクエストが行われるため、戻る前にデータが変更されていることを確認する必要があります。これが私のコードです:
var checkMeta = function(){
var title = $(".playerBarSong").text();
var artist = $(".playerBarArtist").text();
var album = $(".playerBarAlbum").text();
var art = $(".playerBarArt").attr("src");
if (previousTitle != title || previousArtist != artist || previousAlbum != album || previousArt != art){
previousTitle = title;
previousArtist = artist;
previousAlbum = album;
previousArt = art;
currentMeta.title = title;
currentMeta.artist = artist;
currentMeta.album = album;
currentMeta.art = art;
window.clearInterval(intervalId);
sendResponse(currentMeta); //Does not return value to the extension
}
};
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse){
if (request.request == "meta"){
currentMeta = request.meta;
intervalId = window.setInterval(checkMeta,250)
//Some sort of callback?
}
}
);
バニラの JavaScript または jquery でのソリューションをいただければ幸いです。