我有以下Javascript代码:
var bodyRef
function init(){
bodyRef = document.body
}
在init()
body.onload
函数
在我的代码的其他部分使用bodyRef
变量是否安全,或浏览器是否可以更改document.body
的引用?
答案 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?