В моем скрипте содержимого расширения Google Chrome у меня есть следующее:
jQuery(document).ready(function() {
var player = document.getElementById('player');
console.log(player);
console.log(document);
});
Я запускаю его на любом видео Hulu, которое имеет следующий код для вставки с id = 'player'
<embed id="player" type="application/x-shockwave-flash" src="/site-player/playerwrapper.swf?cb=e80c477cL" width="100%" height="428" style="z-index:10;" name="player" quality="high" allowscriptaccess="always" allowfullscreen="true" bgcolor="#000000" flashvars="bitrate=700000&user_id=-1&startLoadWrapperTime=1299572732904&overrideBrand=&referrer=http://www.hulu.com/watch/20338/saturday-night-live-steve-carell-monologue#continuous_play=on&continuous_play_on=true&sortBy=&initMode=4&modes=4&content_id=7751491&cb=2011-3-8-8&v=3">
Например, следующая ссылка http://www.hulu.com/watch/20337/saturday-night-live-snl-digital-short-the-japanese-office
Но при запуске скрипта console.log (player) возвращает ноль.Однако console.log (document) возвращает соответствующий объект документа.Даже если я попытаюсь var player = Document.prototype.getElementById.apply(document, ['player']);
, я все равно получу ноль.
Забавно, что если я попробую это из консоли Chrome JavaScript, все будет работать нормально, я получу правильное <embed>
, напечатанное на консоли.
Есть идеи, почему это не работает в моем скрипте содержимого?
ОБНОВЛЕНИЕ: В соответствии с запросом, вот полное содержимое моей папки расширения chrome:
manifest.json:
{
"name": "gebidtest",
"version": "1",
"permissions": [
"http://*/*",
"https://*/*"
],
"content_scripts": [{
"matches": ["http://*/*"],
"js": ["jquery-1.5.1.min.js","app.js"]
}]
}
app.js:
jQuery(document).ready( function() {
var player = document.getElementById('player');
console.log(player);
console.log(document);
});
jquery-1.5.1.min.js: я только что скачал
Я использую Chrome version 10.0.648.127
наMac, но я также попробовал это на ПК с теми же результатами