- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 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']);
我仍然得到 null。
有趣的是,如果我从 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 上,但我也在 PC 上尝试过,结果相同
最佳答案
直接在JS中执行DOM相关操作是不正确的。例如:
default.html
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="default.js"></script>
</head>
<body>
<a id="Bar" href="#"></a>
</body>
</html>
default.js
const bar = document.getElementById("Bar");
alert(bar.id);
此时 DOM 内容可能尚未完全加载,因此“bar”可能为“NULL”。
正确的做法是:
default.js
document.addEventListener('DOMContentLoaded', function() {
const bar = document.getElementById("Bar");
alert(bar.id);
});
即:当DOMContentLoaded事件发生时执行DOM相关操作。
“setTimeout”不是正确的方法,因为你无法通过设置一些时间延迟来确保 DOM 内容完全加载!
关于javascript - getElementById 无法在 <embed> 的 Google Chrome 扩展中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230095/
Xcode11 Beta 的“框架、库和嵌入式内容”部分中有 3 个新选项用于添加库。 Xcode 库部分屏幕截图 谁能解释一下他们是做什么的吗? 最佳答案 正如@przemyslaw-jablons
我试图弄清楚Wordpress上的[embed] [/ embed]短代码功能是否可以在iframe中显示标题? 将youtube视频显示在页面上后,对其进行检查时,其显示如下: 是否有一种方法可以
My company已经创建了 GraphPad Prism,这是一个广泛使用的程序,供科学家分析数据和制作技术图表。通常,科学家会从 GraphPad Prism 导出图形以提交给科学期刊。现在大多
如果您尝试将 Elm.embed 与 div 以外的元素一起使用,则会出现此错误: Elm.node must be given a DIV, not a BODY. 我可以看到 this fairl
一年后我重新访问discord.py,发现异步显然不可用,所以显然,现在我正在使用重写并且不知道我在做什么。我正在尝试发送一个简单的嵌入内容,但机器人却说: '' 这是我的代码: @bot.comma
我采取了此tutorial中的每一步并获得了所有必需的information / IDs / Parameters 。还看了这些vids . 但是,在运行 sample python code (fl
我正在为 messageUpdate 创建一个事件,并且一切都“完美”地工作,除非有人发送包含超过 1024 个字符的消息,它会返回错误 addField有字数限制。 如果已编辑的消息已达到限制,我怎
是否可以从 Embedly 卡片中删除标题?我想删除或隐藏整个 div.hdr 部分,包括 provider-favicon 和 provider-name,以便只显示卡片的 div.bd 主体。 我
我想向网站添加 5-10 天的天气预报。我无法找到提供预测嵌入代码的网站。我发现的几个看起来很糟糕(大约 1990 年代)。我只是想知道是否有一个看起来很干净的解决方案,我可能会在无休止的 Googl
Closed. This question is opinion-based。它当前不接受答案。
我一直在努力改进我的游戏网站,我想添加一个功能,当您按下按钮时,系统会要求您输入密码,然后就会出现游戏的作弊版本。这是我到目前为止的代码。编辑:我也不关心密码是否安全,所以如果它在代码中很明显就没关系
您是否知道任何可能帮助我将 jBPM Web 设计器嵌入现有 Web 应用程序的指南/教程/示例项目? 即: 我需要包含哪些 Maven 库? 是否可以在主应用程序 WAR 中部署设计器特定的组件(这
我正在尝试在我的浏览器中播放一些声音 (mp3)。找到但是默认 Controller (暂停按钮、音量和时间 slider )并不是很漂亮,所以我想知道如何使用一些 jquery 按钮来控制它? 然后
根据 W3Schools和 Pluralsight's HTML5类(class),标签是 HTML5 的"new"标签。但我一直在使用它......永远,它适用于我测试过的任何浏览器。 This例如
目前正在进行响应式设计,需要嵌入响应式 Spotify。我尝试只使用 css(不起作用),然后使用 fitvids.js(作为一个奇怪的 janky 解决方案),这种方法有效,但仅在初始页面加载时有效
我正在制作一个 discord 机器人,它将更改 channel 的特定名称 代码 if(command === `${prefix}openslot`) { let embed = new
如何将代码嵌入到文档字符串中,以告诉 Sphinx 格式化代码,就像在 Markdown 中所做的一样(不同的背景颜色,等宽的无字体)?例如记录一个代码使用示例。 """ This is a modu
我将以下 bazel BUILD 配置为 gazelle(name = "gazelle") go_embed_data( name = "static_files", srcs =
我已将过渡效果添加到包含视频的容器 div。我在应该嵌入视频的地方出现黑屏。我尝试了 youtube 和 vimeo,但它们都不起作用,所以我认为这与 flash 有关。当我注释掉过渡设置时,视频又可
我想做的是获取一个YouTube播放列表(http://www.youtube.com/embed/videoseries?list=PLzMZz3zuUATIdU0RIndFQiQQzADew0hZ
我是一名优秀的程序员,十分优秀!