我一直在为依赖于Web浏览器控件显示其信息的定制软件开发“IDE”。该软件使用外部文件“common.vbs”访问其网页中的常用功能。洒在整个应用程序中的各种网页的HTML标记:Vb.Net(Visual Basic),Web浏览器控件;使外部文件可用页面
<script LANGUAGE="VBScript" src="common.vbs"></script>
在我的应用程序已经导入代码到资源字符串后,尝试下面的代码:
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)
sPath = Path.Combine(sPath, "common.vbs")
Try
Dim fs As FileStream = File.Create(sPath)
Dim sData As String = My.Resources.common
Dim Info As Byte() = New UTF8Encoding(True).GetBytes(My.Resources.common)
fs.Write(Info, 0, Info.Length)
fs.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
的代码没有按” t错误。当我测试(用相同的函数)读取文件时,它的内容被返回;我知道该文件被写入,但是当任何页面的上述HTML标签加载,我从页面得到一个错误:
An error has occurred in the script on this page
Line: 0
Char: 0
Error: Script error
Code: 0
URL: about:common.vbs
我试图“包括”该文件只包含的功能如:
Function DoHelp
window.external.DoHelp "", "", -1, -1
End Function
Function SQLDate(d)
SQLDate = "'" & DatePart("yyyy", d) & "-" & DatePart("m", d) & "-" & DatePart("d", d) & "'"
End Function
Function MonitorJob(jobId)
on error resume next
window.external.UIControl.MonitorJob jobId, 0
End Function
在应用程序中,加载和使用文件中包含的任何函数都没有问题。该文件的实际内容来自应用程序,并没有在任何庄园编辑过。任何我的应用程序加载的文件都包含错误,包括简单的测试页。
有没有人有任何想法如何让Web浏览器控制从脚本的scr标签中识别文件,这不是从主机应用程序加载和提供的实际页面的一部分?编辑源应用程序中的所有页面实际上不是一种选择;可能是动态创建的,而且有很多。
我试图尽可能多地包含尽可能多的信息,但如果您需要更多信息,请随时提问!
谢谢,弗雷德
编辑/ UPDATE: 我试着写我需要“包括”到一个临时文件夹中的文件,编写调用HTML文件相同的文件夹,然后加载网页使用文件流进行控制。结果是一样的。我不得不说错,将所有“资源文件”写入临时文件夹,然后将生成的HTML页面写入相同的文件,最后将Navigate方法调用到该临时文件夹和文件,导致页面正确加载图像以及底层包含的VBS文件。
上次编辑/更新 我花了一段时间才得到所有零件正常工作。以下是解决问题的答案。