浏览器可以更改对标签的引用吗?

时间:2014-04-24 03:00:06

标签: javascript html dom

我有以下Javascript代码:

var bodyRef

function init(){
  bodyRef = document.body
}

init()

调用body.onload函数

在我的代码的其他部分使用bodyRef变量是否安全,或浏览器是否可以更改document.body的引用?

3 个答案:

答案 0 :(得分:0)

  

是可以自由更改document.body

的引用的浏览器

不,它不能。 document.body始终指向当前帧的正文。

  

在我的代码的其他部分使用bodyRef变量是否安全

是。它是。但请确保您没有为document.body

分配内容

答案 1 :(得分:0)

首先,不,脚本无法更改document.body的引用。如果您尝试document.body = "something",则会获得HierarchyRequestError

接下来,即使能够改变,也不会有问题。例如,如果你这样做

var a = 6;
var b = a;
a = 3;
console.log(b); //this will show 6

它仍将指向原始值,因此不应存在问题。

编辑:

经过测试,我确实发现了一个问题。由于它存储了原始值,因此如果您要修改DOM,document.body将会更新,但bodyRef将不会更新。

答案 2 :(得分:0)

是的,您可以在代码的其他部分使用bodyRef变量。如果你想改变bodyRef等于某事,那么分配bodyRef = "something";就好了,但你不能body.document = "something";。毕竟变量是bodyRef而不是document.body,你希望在更改document.body后如何更改bodyRef?