我使用以下命令启动JS脚本:C:\Windows\System32\cscript.exe /nologo //E:{16d51579-a30b-4c8b-a276-0ff4dc41e755}
,以便使用最新的Chakra引擎。
在我的脚本中,命令WScript.Echo( ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion());
输出11.0.19326
。
我知道这可以提高性能,并且我认为我也可以使用最新的XMLHttpRequest
而不是旧的Microsoft.XMLHTTP
(我需要responseURL),但是看起来我不是。
有解决方案吗?
答案 0 :(得分:1)
我的猜测是,加载Chakra引擎的方式是加载不可见的IE实例。但是according to this MDN compatibility table没有支持responseURL
的Internet Explorer版本。
通过大量测试,尝试将Edge的Chakra引擎加载到Windows Script Host中,我无法获得任何有效的排列。创建一个htmlfile
COM对象,并使用x-ua-compatible
强制兼容,并尝试与HTA应用程序(本机并再次与htmlfile
COM对象进行相同),尝试创建{{1} }对象,我想不到的任何Windows脚本宿主攻击都不会暴露XMLHttpRequest对象的MSXML2.ServerXMLHTTP.6.0
属性。
最好的选择是选择其他语言。在PowerShell中,您可以执行以下操作:
.responseURL
...将会打印
$req = [Net.WebRequest]::Create("https://youtu.be/")
$resp = $req.GetResponse()
$resp.ResponseURI.AbsoluteURI
如果您需要等价于https://www.youtube.com/?feature=youtu.be
,只需添加以下内容:
.responseText
如果您想使用DOM方法解析$ responseText ...
$reader = new-object System.IO.StreamReader $resp.GetResponseStream()
$responseText = $reader.ReadToEnd()
您可以看到original revision of this answer来查看无效的示例。