如何在IE11中使用Windows Powershell注入JavaScript

如何在IE11中使用Windows Powershell注入JavaScript,javascript,powershell,internet-explorer-11,Javascript,Powershell,Internet Explorer 11,简单的问题。我用这个: $links = @("example.com", "example.net", "example.org") $IE = new-object -com internetexplorer.application $IE.visible = $true for($i = 0;$i -lt $links.Count;$i++) { $find = $links[$i] $IE.navigate2($find) } 我希望在循环中有类似于$IE.addsc

简单的问题。我用这个:

$links = @("example.com", "example.net", "example.org")
$IE = new-object -com internetexplorer.application
$IE.visible = $true

for($i = 0;$i -lt $links.Count;$i++) {
    $find = $links[$i]
    $IE.navigate2($find)
}
我希望在循环中有类似于
$IE.addscript(“//MyJavaScriptCode”)
的内容,以便将javascript代码插入页面上的控制台(或者只是为了让它运行)

我如何完成上述任务


谢谢

让我们谈谈添加脚本

首先,COM中没有等待事件。运行操作时,应用程序(在本例中为IE)将运行该操作,因此powershell无法知道操作是否已完成

在本例中,让我们讨论导航。一旦你运行了命令,你将需要在等待导航完成后再继续

幸运的是我们有房地产预售<代码>$IE.Document.ReadyState

我们将需要找出距离,等待ReadyState完成

现在是添加脚本的时候了。没有直接的方法将脚本添加到脚本中。因此,我们可以通过运行javascript添加脚本来解决这个问题<代码>$IE.Document.Script.execScript(此处为脚本,脚本类型)

我们可以在Javascript中创建一个新元素,并将该元素附加到头部。在这种情况下,我将使用Google的Jquery库

var Script = document.createElement('script');
Script.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');
document.head.appendChild(Script);
现在,一旦我们添加了脚本,我们需要等待IE将脚本添加到页面,所以我们需要一个短暂的延迟。在这种情况下,我做了1秒

我运行了一个测试,通过检查Jquery版本加载的
警报($.fn.Jquery),确保脚本加载


让我们谈谈添加脚本

首先,COM中没有等待事件。运行操作时,应用程序(在本例中为IE)将运行该操作,因此powershell无法知道操作是否已完成

在本例中,让我们讨论导航。一旦你运行了命令,你将需要在等待导航完成后再继续

幸运的是我们有房地产预售<代码>$IE.Document.ReadyState

我们将需要找出距离,等待ReadyState完成

现在是添加脚本的时候了。没有直接的方法将脚本添加到脚本中。因此,我们可以通过运行javascript添加脚本来解决这个问题<代码>$IE.Document.Script.execScript(此处为脚本,脚本类型)

我们可以在Javascript中创建一个新元素,并将该元素附加到头部。在这种情况下,我将使用Google的Jquery库

var Script = document.createElement('script');
Script.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');
document.head.appendChild(Script);
现在,一旦我们添加了脚本,我们需要等待IE将脚本添加到页面,所以我们需要一个短暂的延迟。在这种情况下,我做了1秒

我运行了一个测试,通过检查Jquery版本加载的
警报($.fn.Jquery),确保脚本加载


谢谢你的回答。它起作用了!我现在有另一个问题。我想知道你是否能帮我。。。?谢谢谢谢你的回答。它起作用了!我现在有另一个问题。我想知道你是否能帮我。。。?谢谢
$JS = @'
var Script = document.createElement('script');
Script.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');
document.head.appendChild(Script);
'@

$GetVersion = @'
    alert($.fn.jquery);
'@

$links = @("google.com")
$IE = new-object -com internetexplorer.application
$IE.visible = $true
$links | %{
    $Document = $IE.navigate2($_)
    While($IE.Document.readyState -ne 'Complete'){
        sleep -Seconds 1
    }
    $IE.Document.body.getElementsByTagName('body')
    $TEST = $IE.Document.Script.execScript($JS,'javascript')
    sleep -Seconds 1
    $IE.Document.Script.execScript($GetVersion,'javascript')
}