javascript - 如何获取 HTML DOM 类的原始构造函数?

标签 javascript html

另一个我无法控制的脚本正在覆盖 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/

相关文章:

javascript - 阻止 Firefox 中的 Flash 处理鼠标滚轮事件

javascript - 悬停时,从一组 div 中找到匹配的类,并将类名分配给匹配项 (jquery/js)

c# - 更改 MVC 中 DateTime 的显示

Java XML Transformer 将 "\n"替换为空格

javascript - Buefy 工具提示中的新行

html - 我应该如何设置文本位置?

html - IE 10 中的 Z 索引

javascript - 如何在 IIFE 中包装构造函数并将实例放置在 Window 对象上?

javascript - contenteditable .html() 正在编码

javascript - 当屏幕变小时如何使图像成为链接