embed 元素内嵌的#document 怎么通过 JavaScript 获取它的 document

2014-04-30 12:24:33 +08:00
 arbipher
<embed>
__#document
____<!DOCTYPE html>
____<html>
______<body>
______</body>
____</html>
</embed>

我能获取到embed元素。(没记错的话,embed元素是不能有子元素的,)其childNodes()返回空列表[]。

用Chrome调试台,强行修改body的属性,给加了一个onclick="console.log('cheating');",有效果。

请教下,有什么方法能获得内嵌的DOM的document。

P.S.
大坑渗入,挂了两天。这个游戏修改之后,发现坑太大,弃了。
http://www.acfun.com/a/ac1146409
这个问题就是改这个游戏发现的。
4895 次点击
所在节点    JavaScript
5 条回复
marrow
2014-04-30 13:22:24 +08:00
sanddudu
2014-04-30 13:41:50 +08:00
感觉这样是跨域操作
chrome会直接拒绝,如果是纯webkit应该是是允许的,我在用node-webkit写应用的时候改过iframe里的css
arbipher
2014-04-30 14:00:35 +08:00
@marrow
这个帖子都搜到过,不work

> document.embeds[0]
<embed width=​"1024" height=​"960" //blabla

> document.embeds[0].getSVGDocument()
null

> document.embeds[0].contentDocument
undefined


@sanddudu
我在调试模式里面是可以修改的啊,而且我给body加了onclick函数,这个函数就生效了。
我想知道为什么调试模式就可以改。。。
marrow
2014-04-30 16:36:56 +08:00
啊不好意思刚才那个没试过就发上来了
刚才跑了一下属性
Object.getOwnPropertyNames(document.embeds[0]).filter(function(a){return document.embeds[0][a] ;})
发现 document.embeds[0].ownerDocument
就可以拿到
arbipher
2014-04-30 17:56:48 +08:00
@marrow
这个返回的是外面的document吧。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/110622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX