"<object>"标签内部内容的样式化

3
假设我们有:

<html>
  <body>
  <object width="435" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/SkPqgvQg3Mg"></object>
  </body>
</html>

当YouTube视频加载到HTML页面上后,如果我们在视频上使用"检查元素"功能,就可以得到一个新的HTML页面。

现在我想要为object标签内部的行内HTML添加样式。
有没有什么方法可以实现?

2个回答

5

简短回答:不行。

在您的页面中包含的CSS无法实现您想要的功能,因为CSS仅适用于文档边界内部。
您也不能通过JavaScript来规避这个问题,通过动态插入对象(/ iframe )内容中的样式表,由于同源策略安全策略,它会阻止您影响嵌入到与容器页面不同域的嵌入文档的内容。
此安全策略防止的漏洞称为跨站点脚本漏洞。


我可以在<object>标签后或内容加载完成后,通过外部CSS或JavaScript来操作CSS吗? - undefined
@manishk 不好意思,允许这种跨域干扰会为XSS攻击打开大门。@Quentin 是的,那不是本意,但我进行了编辑以提高清晰度。 - undefined
XSS(跨站脚本攻击)是指用户输入(可能由第三方提供,例如通过将用户从恶意网站重定向到包含输入的URL中)被易受攻击的网站视为代码处理的情况。这与同源策略所防止的不同(同源策略一直以来都有防止此类问题,因此没有特别的名称,也没有人需要担心它)。 - undefined
@Quentin 我一直将跨站脚本攻击的定义解释得比仅仅将用户输入视为代码更广泛,而且快速的谷歌搜索也没有证明这种解释是错误的。我的意思是,如果你能够在不同网站之间执行脚本,那就是一种跨站脚本攻击漏洞,不是吗? - undefined

-1

-编辑-

我认为最好使用iframe,而不是object,因为自2015年1月起它已被弃用。

源代码

至于更改来自其他网站的文件的CSS,我认为这是不可能的。


你应该可以用JavaScript或CSS来实现。但是,出于非常明显的安全原因,你不能使用客户端JavaScript修改其他网站,即使它们在一个框架中。 - undefined
我的错...每天都会学到新东西...让我来编辑一下 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接