gpt4 book ai didi

javascript - 在 javascript 中为 document.location 创建钩子(Hook)

转载 作者:行者123 更新时间:2023-11-28 21:04:35 24 4
gpt4 key购买 nike

我们可以在 JavaScript 中创建对 document.location 属性的引用吗?从过去的几天来看,我们正在研究在 document.createElement 上创建的钩子(Hook)。在使用它时,我们怀疑是否可以在 document.location、document.scripts 等对象上创建钩子(Hook)。

var dbi = document.body.innerHTML; 
document.body.innerHTML=function () {
var elem = dbi.apply (document, arguments);
console.log(arguments);
}

最佳答案

在您的代码中:

> var dbi = document.body.innerHTML;

innerHTML 是一个值为字符串的属性,因此分配给 dbi 的值是一个字符串基元。

> document.body.innerHTML=function () {

body元素是一个宿主对象,没有理由相信您可以将函数对象分配给根据相关标准应该是字符串的属性。在某些环境中可能是可行的,但不能依赖它,并且至少在某些使用的浏览器中会失败。

>     var elem = dbi.apply (document, arguments);

dbi 是一个字符串原语,它没有 apply 方法。

>     console.log(arguments);
> }

编辑

在 ES5 中你可以定义 getter ,例如

var o = {   
get pageURI () {
return document.location.href;
}
}

所以你可以这样做:

alert(o.pageURI);

document.location = document.location.href + '#foo';

alert(o.pageURI); // current URI with #foo appended

但是您不应该在一般网络上依赖 ES5,许多浏览器尚未完全支持它。

关于javascript - 在 javascript 中为 document.location 创建钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10203234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com