2016-02-25 29 views
3
Option Explicit 
Dim output, ProxyEnable, ProxyServer, wshShell, doc 

Sub Window_onLoad 
    loadProxySettings() 
End Sub 

Set wshShell = CreateObject("WScript.Shell") 
ProxyEnable = wshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable") 
ProxyServer = wshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer") 

Function loadProxySettings() 
    If ProxyEnable = 1 Then 
     proxyStatus.className = "enabled" 
     proxyStatus.innerHTML = "Proxy aktiv" 

     toggleProxyButton.value = "Proxy deaktivieren" 

     proxyServer.value = ProxyServer 
    Else 
     proxyStatus.className = "disabled" 
     proxyStatus.innerHTML = "Proxy deaktiviert" 

     toggleProxyButton.value = "Proxy aktivieren" 

     proxyServer.value = ProxyServer 
    End If 
End Function 

只是找不到为什么这是给我的错误的问题:的VBScript对象所需

Object required "ProxyStatus"

(是的,我有与proxyStatusid一个span元素)

+1

'Set doc = document'似乎将'doc'设置为等于未初始化的东西。 –

+0

嗯试了一下,但仍然是相同的。那就是为什么我这么激怒..hmm谢谢你 – Steve

+0

编辑你的代码来显示什么'doc'设置等于。 –

回答

1

回去this code

Set ProxyStatus = document.getElementById("proxyStatus") 
Set ToggleProxyButton = document.getElementById("toggleProxy") 
Set ProxyServerInput = document.getElementById("proxyServer") 

唯一的错误作为HTML正确形成的是使用Set当您只是引用DOM中的现有对象时。尝试从这些行中删除这样的Set;

+1

谢谢,解决了这个问题,谢谢你们! – Steve

0

在HTA中,您可以使用变量的ID'd元素的ID,即如果您有这样的元素:

<p>foo <span id="proxyStatus">something</span> bar</p> 

你应该能够在你的代码像这样使用它,而不必首先做任何事情:这里只要

MsgBox proxyStatus.innerText 
+0

谢谢你..我知道,但它也不起作用..仍然是一样的,似乎getElementById没有找到DOM中的元素.. – Steve

+0

@steve如果它没有找到DOM元素,它可能不会将HTML视为有效的结构,请尝试验证HTML。 – Lankymart

+1

您是否删除了'getElementById()'语句,因此它们不会弄乱现有变量?您的HTML包含框架或iframe? –