自分用に拡張用のブラウザを構築しようとしています。アイデアは、プラグインのアイコンをクリックすると、ページが開くということです。その新しいページの読み込みが完了した後にいくつかのコードを実行したいのですが、どういうわけかうまくいきません。
var result;
chrome.browserAction.onClicked.addListener(function() {
chrome.history.search(
{ text: "", maxResults: 100}, //object
function(results) { //callback
for(var item in results) {
var currItem = results[item];
if (currItem.url.indexOf("some_domain") > -1) {
result = results[item];
break;
}
}
//Go to website
chrome.tabs.create({
'url': result.url
}, function(tab) {
new_tabId = tab.id;
});
}
);
});
ここで失敗する部分があります:
chrome.webNavigation.onCompleted.addListener(function(details) {
// if (check for correct URL here) {
var videos = document.getElementsByTagName("video");
var video = videos[0];
alert(videos.length); <--- always Zero! Why??
video.load();
video.play();
video.addEventListener("ended", function() { ... });
// }
});
どちらも同じバックグラウンド スクリプトにあり、コンテンツ スクリプトはありません。マニフェストのアクセス許可は次のとおりです。"tabs", "history", "webNavigation"
開発者コンソールで確認して
document.getElementsByTagName("video").length
実行すると、正しい番号が得られます。