【发布时间】:2011-07-10 22:44:52
【问题描述】:
在我的 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) 返回 null。但是,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:我刚下载了
我在 Mac 上使用 Chrome version 10.0.648.127,但我也在 PC 上尝试过,结果相同
【问题讨论】:
标签: javascript flash google-chrome-extension embed getelementbyid