我的猜测是,你加载 Chakra 引擎的方式是加载一个不可见的 IE 实例。但是根据这个 MDN 兼容性表,没有任何版本的 Internet Explorer 支持responseURL
.
编辑:不要使用 JScript
通过大量测试,尝试将 Edge 的 Chakra 引擎加载到 Windows Script Host 中,我无法找到有效的排列。创建一个htmlfile
COM 对象并强制使用 兼容x-ua-compatible
,尝试与 HTA 应用程序相同(本机和再次使用htmlfile
COM 对象),尝试创建一个MSXML2.ServerXMLHTTP.6.0
对象,我可以想象的任何 Windows Script Host hack 都不会暴露.responseURL
XMLHttpRequest 对象的属性。
最好的选择是选择一种不同的语言。在 PowerShell 中,您可以执行以下操作:
$req = [Net.WebRequest]::Create("https://youtu.be/")
$resp = $req.GetResponse()
$resp.ResponseURI.AbsoluteURI
...这将打印
https://www.youtube.com/?feature=youtu.be
如果您需要 的等价物.responseText
,只需添加以下内容:
$reader = new-object System.IO.StreamReader $resp.GetResponseStream()
$responseText = $reader.ReadToEnd()
如果你想使用 DOM 方法解析 $responseText...
$htmlfile = new-object -COM htmlfile
$htmlfile.IHTMLDocument2_writeln($responseText)
$buttons = $htmlfile.getElementsByTagName("button")
您可以查看此答案的原始修订版,以了解不起作用的示例。