另一个我无法控制的脚本正在覆盖 window.URL,我如何获取构造函数?
我无法控制的代码:
URL = "not the constructor you seek";
我的代码:
var myUrl = new window.URL(someString);
失败并出现类型错误:URL不是构造函数
有没有办法获取window.URL的原始值?我无法运行首先可靠执行的代码,这是一个有点敌对的执行环境。
最佳答案
如果您的脚本需要在敌对环境中执行,那么您实际上无法采取任何措施来保证它将正确执行。
话虽如此,某些方法比其他方法“更安全”(即不太可能被覆盖)。
我过去使用过的一项可能对您有所帮助的技术是访问一个干净的窗口
作为沙箱,并从该沙箱的上下文中运行所有代码:
const sandbox = document.createElement('iframe')
sandbox.src = 'about:blank'
sandbox.style.display = 'none'
document.body.appendChild(sandbox)
const sandboxWindow = sandbox.contentWindow
console.log(new sandboxWindow.URL('http://example.com'))
关于javascript - 如何获取 HTML DOM 类的原始构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57499368/