我试图通过Google Chrome扩展来控制Netflix的播放器.这是控制栏的图像,对于那些不熟悉它的人来说.

我设法模拟一个点击播放/暂停,下一集,并使用以下代码切换全屏按钮(橙色方块):

$(".[control class]").click();

但是,相同的逻辑似乎不适用于控制您当前处于哪个视频的部分(蓝色矩形中的那个)的滑块.

我想要做的是更改视频的当前位置(例如,返回10秒).这是我迄今为止所尝试的:

更改aria-valueNow on section role =“slider”:

$(".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开发者工具的控制台更改音量和播放器的位置.以下是代码(为所需位置更改所需体积0〜99和[POSITION]的[VOLUME]):

// 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&gt ;. 这是一个完整的例子:

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)滑块的值的更多相关文章

  1. 解析html5 canvas实现背景鼠标连线动态效果代码

    流行的动态背景连线特效。今天小编通过实例代码给大家解析html5 canvas实现背景鼠标连线动态效果,感兴趣的朋友一起看看吧

  2. iOS Chrome上的HTML SELECT不显示“完成”选项

    我们在iOS上的Chrome中使用UI呈现时遇到问题,特别是HTMLSELECTDropDown元素.例:使用Safari,当您点击SELECT时,屏幕底部会打开一个微调器–您可以点击完成以选择您的选择并返回到表单.但是,当您在iOS上的Chrome中加载完全相同的页面时,不会显示“完成”.用户必须选择他们的选择,然后点击UI上的其他位置返回到表单.非常不直观,用户感觉好像SELECT没有用.有人有解决方案吗?

  3. ios – 来自UIAlertController的self.navigationController?.popViewControllerAnimated

    我是新手,但我想我已经掌握了它.这让我的进步很难过.我想要做的是当我们无法找到他的查询的相关数据时向用户抛出错误消息,然后继续将他带回到之前的ViewController.但是,我在这方面遇到了麻烦.在我添加操作的行上,我收到以下错误:’UIViewController?’不是Void的子类型我该怎么做呢?

  4. ios – Swift闭包为AnyObject

    如何将()–>()转换为AnyObject?我试图将它转换为:处理程序为AnyObject,但它给我一个错误说:()–>()不符合协议’AnyObject’解决方法HowcanIcast()->()intoAnyObject?

  5. 有任何方法可以在任何IOS设备中调试chrome

    有没有办法在IOS设备上调试Chrome浏览器?如果没有办法,我可以如何处理ios上的chrome错误?

  6. ios – 如何在tvOS上深入连接Netflix?

    我希望在新的第4代AppleTV的Netflix应用程序中打开一个视频或电影的深层链接.我可以在iOS上进行深入的连接工作.下面的链接将打开Netflix应用程序到一个特定的节目或电影.当我在AppleTV上尝试相同的格式时,所有这些都是Netflix应用程序打开而不打开特定的节目或电影.Siri搜索可以直接打开应用程序到一个媒体项目,所以似乎应该有一种方式来工作.解决方法想出来了原来你可以使用常规的netflixurl结构,而是用nflx替换http.

  7. Twilio电话在iOS和Android中无法正常工作

    我正在尝试使用twilioclient在反应本机应用程序.这里是链接Twiliorepo完成所有设置与反应本机twilio.当我打电话一个数字得到问题.我使用了这个链接中的所有步骤.[tid:com.facebook.react.JavaScript]处理程序不是一个函数.(在“处理程序(rtn)”中,’handler’是未定义的)2016-09-2711:00:57.857[致命][tid:co

  8. ios – 为什么Google Chrome模拟器以375×667的分辨率显示iPhone 6?

    我正在以编程方式调整我的网站的图像尺寸不同大小的设备.但现在我无法告诉我实际需要什么尺寸.在GoogleChrome模拟器中,我看到我的某些图像有所增加,例如在iPhone6从230×230自然到357×357显示.该图像几乎占据了仿真屏幕的整个宽度,并且看起来稍微退化,这表明iPhone6的宽度不会大于357像素.但是ApplesaysiPhone6的分辨率是750×1334!为什么某些来源的供应尺寸是Chrome模拟器所说的两倍?

  9. iOS Parse Stripe Integration

    所有指南和文档都指向了这个方向.我真的不明白GET/POST是什么以及它如何适合iOSObjective-C编程.关于如何设置它的任何指导都将非常感激.我已经坚持了一段时间了.解决方法Parse的条带API并不像它应该的那样完整.它本身不包含许多功能,但可以通过HTTP请求完成.我必须学习一点Javascript和HTTP请求以获得许多功能.当然,你的第一直觉应该告诉你不要在任何设备上存储CC号码!

  10. [Swift]UIKit学习之警告框:UIAlertController和UIAlertView

    Important:UIAlertViewisdeprecatediniOS8.(NotethatUIAlertViewDelegateisalsodeprecated.)TocreateandmanagealertsiniOS8andlater,insteaduseUIAlertControllerwithapreferredStyleofUIAlertControllerStyleAlert.

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部