- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试通过 Google Chrome 扩展程序控制 Netflix 的播放器。这是控制栏的图片,供不熟悉的人使用。
我设法使用以下代码模拟点击播放/暂停、下一集和切换全屏按钮(带有橙色方 block 的按钮):
$(".[control class]").click();
但相同的逻辑似乎不适用于控制您当前所在视频的哪一部分(蓝色矩形内的那一部分)的 slider 。
我想做的是改变视频的当前位置(比如后退10秒)。到目前为止,这是我尝试过的:
在 section role="slider"
上更改 aria-valuenow:
$(".player-slider")["aria-valuenow"] = 0;
获取红色圆圈,改变它的位置并点击它:
$(".player-scrubber-target")["style"] = "width: 30%";
$(".player-scrubber-target").click();
(绝望)更改宽度和/或单击该部分内的每个栏:
.player-scrubber-progress-buffered (change width and click)
.player-scrubber-progress-completed (change width and click)
.player-scrubber-progress (click)
#scrubber-component (click)
非常感谢Kodos Johnson指出我 this问题,并转kb0对于原始代码,通过一些研究,我能够从 Chrome 开发者工具的控制台更改音量和播放器位置。这是代码(将 [VOLUME] 更改为所需音量 0~99,将 [POSITION] 更改为所需位置):
// Change volume
netflix.cadmium.UiEvents.events.resize[0].scope.events.dragend[0].handler(null, {pointerEventData: {drag: {current: {value: [VOLUME]}}}});
// Change player position
netflix.cadmium.UiEvents.events.resize[1].scope.events.dragend[1].handler(null, {value: [POSITION], pointerEventData: {playing: false}});
不幸的是,这似乎在 Chrome 开发者工具之外不起作用。当我从我的扩展中运行代码片段时,我得到了这个:
Uncaught ReferenceError: netflix is not defined at <anonymous>:1:1
下面是我如何从我的扩展中运行脚本:
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.executeScript(tab.id, {code: [SNIPPET]}, function(response) {});
});
如何通过 Chrome 扩展以编程方式更改视频的当前位置(或模拟用户点击栏并手动更改)?
最佳答案
好吧,感谢 Kodos Johnson和 Dehli使我朝着正确的方向前进,并转向kb0对于以下代码 [...]
netflix.cadmium.UiEvents.events.resize[1].scope.events.dragend[1].handler(null, {value: 999, pointerEventData: {playing: false}});
[...] 通过一些研究,我设法访问了音量和视频位置控件,并从 Chrome 开发者工具的控制台访问了它们。为了解决我的扩展无法访问 netflix
的事实var,我在页面的 <head>
上注入(inject)代码.
这是一个完整的例子:
function ChangeVolume(volume)
{
InjectScriptOnPage("netflix.cadmium.UiEvents.events.resize[0].scope.events.dragend[0].handler(null, {pointerEventData: {drag: {current: {value: " + volume + "}}}});");
}
function ChangePosition(position)
{
InjectScriptOnPage("netflix.cadmium.UiEvents.events.resize[1].scope.events.dragend[1].handler(null, {value: " + position + ", pointerEventData: {playing: false}});");
}
function InjectScriptOnPage(script)
{
var script = "var head = document.getElementsByTagName('head')[0]; \
var script = document.createElement('script');\
script.type = 'text/javascript'; \
script.innerHTML = '" + script + "'; \
head.appendChild(script);";
ExecuteScriptOnPage(script);
}
function ExecuteScriptOnPage(script)
{
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.executeScript(tab.id, {code: script}, function(response) {});
});
}
(我会等到赏金结束才将其标记为已接受,以防有人发布更好的答案)
关于javascript - 以编程方式模拟点击/更改 aria (netflix) slider 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679738/
我是 ARIA 角色的新手。如果我有工具提示类型功能,即如果有人单击问号按钮,会显示更多文本详细说明如何填写表单字段,我应该使用 aria-expanded 属性、aria-hidden 属性还是两者
我正在查看一些代码,其中一个标签具有属性 aria-owns 和 aria-expanded。我用谷歌搜索了它们,但没有找到足够的细节来完全理解它们的作用。 有人可以解释一下这些特定属性的用途吗?我对
当我通过 W3C 验证器运行它时,几天前使用无错误通过的 HTML 5 代码现在显示错误。错误看起来像这样: 元素 li 缺少以下一个或多个属性:aria-checked、aria-expanded、
有人可以详细说明aria-live="assertive"之间的区别吗?和 aria-live="polite" ? 据我了解 aria-live="assertive"将获得更高的优先级并清除队列,
我只是注意到,虽然 aria-label , aria-labelledby和 aria-describedby据说属性适用于每个元素(参见 https://www.w3.org/WAI/PF/ari
在我的网站上,用户可以单击“实时聊天”按钮,然后会出现一个聊天窗口。我正在寻找一些文本来读出(对于使用屏幕阅读器的辅助用户) 当聊天窗口出现时,焦点将转到输入文本框 - 用户可以在其中输入文本与顾问聊
W3C 将 WAI-ARIA 角色分为四组: 抽象角色 小部件角色 文档结构角色 标志性角色 有人可以解释一下抽象角色类别吗? 最佳答案 规范中确实提到: Abstract roles are the
W3C 将 WAI-ARIA 角色分为四组: 抽象角色 微件角色 文档结构角色 里程碑式的角色 有人可以解释抽象角色类别吗? 最佳答案 它确实在规范中说: Abstract roles are the
我试图让 voiceover 只读取 aria-describedby,但它是这样读取的(“我是一个按钮”未被读取) : 而如果有一个定义了 id aria-describedby="modal-la
人们问过 aria-controls 和 aria-owns 之间的区别。 aria-controls 是基于层次结构的父子关系,而 aria-owns 不是。 我想变得非常具体。 aria-cont
我已经四处搜索,如果可以将 aria-label 组合起来,我没有找到任何信息。和 aria-describedby对于一个元素,它是否会导致使用屏幕阅读器的人感到困惑? 我有一个包含许多项目的列表,
我有一个页面,我应该可以在没有太多更改的情况下访问该页面。 页面中的一个组合框被编码,以便在单击输入框时,div 的内容被复制到同一页面中的 iframe 元素中,并且该 iframe 在输入框下方可
使用时对元素的真正影响是什么 aria-owns="id" 和(!) aria-controls="id" 当使用这两个属性时,浏览器如何通知屏幕阅读器? 最佳答案 两个aria-controls和
使用 Bootstrap 模式,我经常看到这些 aria 属性,但我从来不知道如何使用它们。 有谁知道什么情况下使用这些属性?我用谷歌搜索——只是没有找到任何直接的答案。 最佳答案 HTML5 ARI
我想确定当用户单击其后代时可以自动隐藏一个元素(使用 JavaScript 来实现)。 例如: A Link 这是正确的方法吗? 最佳答案 虽然您可以创建自定义
使用 jQuery 在 #div1 中添加角色警报,读取 #div2 内容,即使它对于 JAWS 来说是隐藏的。 some content some con
我正在尝试将 aria-label 添加到网站上没有的所有链接。我想使用链接文本作为 aria-label。 $(document).ready(function () { $("a").each
我在互联网和 Angular Aria 文档上进行了搜索——它没有提到 aria-expanded 或 aria-selected? 有没有办法实现这个? 这将使: 谢谢。 最佳答案 我使用 ng
我发现了两种使用 aria- 属性标记区域的方法。 第一个: Blah-blah 第二个: Search results Blah-blah JAWS 读取它们完全相同。那
我有一个工具栏与各种按钮的列表。在某些情况下,按钮有一个标签,在其他情况下,它使用图像。。两者都被生成为具有到包含div的aria-Labelledby,该div具有标题属性。屏幕阅读器(NVDA,叙
我是一名优秀的程序员,十分优秀!