Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome扩展中的HTML5视频元素和jQuery';s内容脚本_Jquery_Html_Video_Google Chrome Extension - Fatal编程技术网

Chrome扩展中的HTML5视频元素和jQuery';s内容脚本

Chrome扩展中的HTML5视频元素和jQuery';s内容脚本,jquery,html,video,google-chrome-extension,Jquery,Html,Video,Google Chrome Extension,在控制台中,如果我使用:$(“#player>video”).videoWidth我得到的结果是:1920(或其他) 但是在Chrome扩展的内容脚本中,console.log($(“#播放器api视频”).videoWidth)生成结果未定义。要获取编号1920我必须使用console.log($(“#player api video”).get(0.videoWidth) 同样,在控制台上,我可以执行以下操作: video = $("#player > video") video.st

在控制台中,如果我使用:
$(“#player>video”).videoWidth
我得到的结果是:
1920
(或其他)

但是在Chrome扩展的内容脚本中,
console.log($(“#播放器api视频”).videoWidth)生成结果
未定义
。要获取编号
1920
我必须使用
console.log($(“#player api video”).get(0.videoWidth)

同样,在控制台上,我可以执行以下操作:

video = $("#player > video")
video.style.width = "1920px"
和css样式的宽度将在视频元素中更改

代码
$(“#播放器api视频”).css(“宽度”,“视频宽度+”px“)不适用于内容脚本。这很奇怪,因为
$(“#播放器api视频”).css(“缩放”、“重置”)
确实如此。因此,元素的样式宽度和高度特别奇怪。通过进一步观察,我们可以看到这一点:

从内容脚本中,我必须设置
$(“#播放器api视频”).get(0).style.width=“1920px”
或使用
video=$(“#播放器api视频”).get(0)
并设置
video.style.width
。这是因为
$(“#播放器api视频”)
没有样式属性。但是,从任何
foo.get(0)
设置
style.width
不会更改元素的样式

最后,如果我尝试使用方法
$(“#player>video”).width
直接从控制台中,我发现它是一个属性(并且没有设置为任何值)。设置此属性对元素的样式没有影响,但至少有影响。但是从内容脚本来看,它是一种对元素没有影响的方法

为什么HTML5VideoElement的行为是这样的?通常,元素不需要使用
.get(0)
来检查或操作

如何从Chrome扩展的内容脚本更改HTML5视频元素的元素样式(宽度和高度)?

我已经找到了一半问题的答案

var video = $("#player-api video").get(0);

for (method in video) { 1; } // ensure all methods are loaded up

var css = video.style.cssText;
video.style.cssText = css.replace(/width:\ \d+\S+/, "width: " + video.videoHeight + 'px;').replace(/height:\ \d+\S+/, "height: " + video.videoWidth + 'px;');
将更改内容脚本中视频元素的实际样式和观察到的宽度和高度。这足以满足我的需要,但并不能真正解释发生了什么

如果有人来回答为什么视频元素的
.style.width
可以从控制台成功地更改元素的样式,但是
.style.width
可以从内容脚本中指定,我会将答案授予他们。否则,我将在两天内为我在检查对象时找到的
.style.cssText
解决方案索赔