仅在主文档中的createElement不在Document内的iFrame中

时间:2011-11-01 15:57:07

标签: javascript safari

如果我用...创建元素

var elm = document.createElement("p");  
document.body.insertBefore( elm, document.body.firstChild );  

我在每个身体元素中都有这个p元素 - cooool!
但也可以在主文档中的每个iframe主体中。

如何在maindocument中定义创建? 像什么?

document.body.firstChild.ownerDocument

(脚本应该通过safari扩展从inject.js开始工作)

3 个答案:

答案 0 :(得分:0)

插入身体的firstChid:

var elm = document.createElement("p");  
var body = document.body;
body.insertBefore(elm, body.firstChild);

已编辑:http://jsfiddle.net/vgbsf/1/

答案 1 :(得分:0)

如果我正确理解你的问题,你可以使用jQuery:

$('body').prepend("<p>im new here...</p>")

检查 - http://jsfiddle.net/HLQ8W/

答案 2 :(得分:0)

  

我在每个body元素中都有这个p元素 - cooool!

你应该只在文件所具有的单一身体中获得它。

  

但也在主文档中的每个iframe主体中。

这些是单独的文档,除非您在嵌入式文档中包含该代码,否则该代码不应触及它们。

如果你 包含那些文件中的代码,那么你可以测试你是否(不是)在一个框架中:

if (top === window) {