为什么我不能在IHTMLDocument2中修改锚点的名称?

时间:2015-11-22 08:54:28

标签: html powershell dom com ihtmldocument2

我在一个从本地HTML文件中读取的脚本上编写,修改DOM树然后保存。使用Invoke-WebRequest COM对象代替HTMLFile似乎是唯一的方法。

重写其他属性,例如href,就像魅力一样。但不知何故,我发现无法更改锚点name属性,除非通过设置复杂和丑陋的outerHTML属性来重新创建整个元素。但是,removeAttribute方法有效,但这不是我想要的。

测试用例:

$idoc = New-Object -ComObject "HTMLFile"
$idoc.IHTMLDocument2_write("<body><a name=123></a><a name=456></a></body>")
$idoc.anchors | foreach {$_.name = "aaa"; /* or $_.setAttribute("name", "aaa") */}
# $idoc.anchors | foreach {$_.getAttribute("name")} <- changed
# $idoc.anchors | foreach {$_.outerHTML} <- remains unchanged

任何人都可以告诉我这是一个错误还是对访问该属性有任何限制?我怎样才能找到一种优雅的方式来完成我的工作?

感谢。

0 个答案:

没有答案