2016-12-13 9 views
0

나는 셰어 포인트에서 새 프로젝트 항목을 생성하는 작업용 도구를 만들고 있습니다. 셰어 포인트에는 양식을 작성해야하며 양식의 텍스트 필드를 식별하려면 IE.Document.All.Item("id").value=value 명령을 사용하십시오.IE. Document.items.all이 작동하지 않습니다. hta

그것은 별도의 vbs 파일에서 작동하지만 hta에서 실행하려고하면 IE.Documents.All.item 명령에서 차단됩니다. 아무도이 문제를 해결하는 방법을 알고 있습니까? (: VBScript를 언어) :

코드는 다음과 같습니다 아마도 그

oIe.document.getElementById("testMsgBox").value = "hallo" 

또는

oIE.document.all.testMsgBox.value = "hallo" 

:

Sub SendProjectData 
    Set IE = CreateObject("InternetExplorer.Application") 
    set WshShell = CreateObject("WScript.Shell") 
    IE.Navigate "https://sharepointpage" 
    IE.Visible = true 
    sleep1 6000 'external defined sleep command' 

    IE.Document.All.Item("projectid").Value = "projectname" 
    WshShell.AppActivate "IE" 
    WshShell.SendKeys "{ENTER}" 
End Sub 

답변

0

Mmmh, 나는 작업 도움, 라인 하르트

+0

하이 라인 하르트, 답장을 보내 주셔서 감사합니다. 그러나 오류 메시지가 계속 나타나므로 작동하지 않는 것 같습니다 : "지정되지 않은 오류". 어쩌면 그것은 ".document"입니다. 아마도 hta를 사용할 때 vbscript에 대해 정의되지 않았을 것입니다. – Patty

+0

저는 그냥 난처한 존재입니다. 텍스트 필드가 hta 안에 있습니까? 그런 다음 ID 또는 이름 만 사용하여 요소에 액세스 할 수 있으므로 'projectid.Value = "projectname"'이 작동해야합니다. 아니면 다른 html 파일의 텍스트 필드이고 vbs 코드를 사용하여 hta 파일에서 채우고 싶습니까? – ReFran

+0

안녕하세요 ReFran, 텍스트 필드는 제 3 자 웹 사이트에 있으며 내 로컬 hta에서 입력으로 채우려고합니다. 나는 txt 파일에 내 입력 내용을 저장하고 hta 환경 외부의 웹 사이트에서 텍스트 필드를 채우는 vbs를 실행하여 작업했습니다 ( – Patty

0

이렇게하면됩니다. IE11와 Win10에서 테스트 :

먼저 HTML 테스트 파일 : 이제

<html> 
    <head><title>MyInputFile</title></head> 
    <body> 
    <h1>IE with Input field</h1> 
    <input type="text" id="myText" value="Default text" size="20"> 
    </body> 
</html> 

HTML 파일 작성하는 HTA 파일 :

<html> 
<head> 
<title>Hypertext-Application Demo</title> 
<HTA:APPLICATION ID="oHTA"> 
<script language="vbscript"> 
    sub Window_Onload 
     self.resizeto 500,200 
     self.MoveTo 50,50 
    End Sub 

    Sub fillHta() 
     myText.value = "New Text" 
    End Sub 

    Sub startAndFill() 
     set wsh = CreateObject("WScript.Shell") 
     'Set oIE = CreateObject("InternetExplorer.Application") 
     Set oIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") 
     oIE.Navigate "d:\MyInputFile.html" 
     oIE.Visible = true 
     Do: Loop Until oIE.Busy = False 
     Do: Loop Until oIE.Document.ReadyState = "complete" 

     oIe.document.getElementById("myText").value = "New Text" 'use this 
     x = oIe.document.getElementById("myText").value 
     oIE.document.all.myText.value = x & "; New Text2" 'or this 
    End Sub 
</script> 
</head> 
<body bgcolor="#99CCFF"> 
<p>Simple Demo of Hypertext Applikationen</p> 
<input type="button" value="Fill HTA input field" onclick="fillHta()"> 
<input type="text" id="myText" value="Default text" size="20"> 
<p><input type="button" value="start and fill IE field" onclick="startAndFill()"> D:\MyInputFile.html</p> 
</body> 
</html> 

이 즐겨을, 라인 하르트