Я создал DLL библиотеки классов, на которую можно ссылаться из любого стороннего приложения, и она содержит только одну функцию, которая вызывает JavaScript для чтения локального файла и возвращает некоторые значения из файла в ссылающееся приложение.
Я использовал:
System.Web.HttpContext.Current.Response.Write
, но он записывает функцию JavaScript в начале ссылающейся страницы, поэтому она никогда не может быть выполнена.Затем, чтобы написать JavaScript в конце справочной страницы, я использовал:
Dim CSM As UI.ClientScriptManager = System.Web.UI.Page.ClientScript
, а также:Me.Page.ClientScript CSM.RegisterClientScriptBlock(Me.GetType(), "SCRIPTNAME", JavaScriptSuntax.ToString)
И отображается сообщение об ошибке: для ссылки на неразделенный член требуется общая ссылка.
Я попробовал:
ScriptManager.RegisterStartupScript("", Me.GetType(), "SCRIPTNAME", JavaScriptSuntax.ToString)
, но получил сообщение об ошибке: Имя «ScriptManager» не объявлено.
Добавляю ссылки на следующее:
System.Web, System.Web.UI, System.Web.UI.ClientScriptManager, System.Web.UI.Page, System.Text
Как я могу вызвать JavaScript из библиотеки классов DLL для правильного выполнения из любого ссылающегося приложения asp.net?
Спасибо за помощь заранее.
Пример кода:
** Correction now it writes the JavaScript in the body tag but for some reason it doesn't work!!!
'Function in Class Library DLL
Function ReadClientFile() As Boolean
Try
Dim JavaScriptSuntax As StringBuilder = New StringBuilder()
JavaScriptSuntax.Append(" var FSO = new ActiveXObject('Scripting.FileSystemObject');")
JavaScriptSuntax.Append(" var nForReading=1;")
JavaScriptSuntax.Append(" var fileLines;")
JavaScriptSuntax.Append(" var OldKeyLine;")
JavaScriptSuntax.Append(" var NewKeyLine;")
JavaScriptSuntax.Append(" var oFileObj = FSO.OpenTextFile('D:\TestJScript.txt',nForReading, false);")
JavaScriptSuntax.Append(" var sFileContents=oFileObj.ReadAll();")
JavaScriptSuntax.Append(" fileLines = sFileContents.split('\n');")
JavaScriptSuntax.Append(" for(var intMissed = 0; intMissed < fileLines.length; intMissed++)")
JavaScriptSuntax.Append(" {")
JavaScriptSuntax.Append(" var myRegExp = /Doc_|_New/;")
JavaScriptSuntax.Append(" var string1 = fileLines[intMissed];")
JavaScriptSuntax.Append(" var matchPos1 = string1.search(myRegExp);")
JavaScriptSuntax.Append(" if(matchPos1 != -1)")
JavaScriptSuntax.Append(" {")
JavaScriptSuntax.Append(" NewKeyLine = sFileContents.split(' = ');")
JavaScriptSuntax.Append(" if(NewKeyLine[1].trim == '')")
JavaScriptSuntax.Append(" {")
JavaScriptSuntax.Append(" alert('Doc Key has not been updated!');")
JavaScriptSuntax.Append(" }")
JavaScriptSuntax.Append(" Else")
JavaScriptSuntax.Append(" {")
JavaScriptSuntax.Append(" alert('Doc Key has been updated and the NewKey= ' + NewKeyLine[1]);")
JavaScriptSuntax.Append(" }")
JavaScriptSuntax.Append("}")
JavaScriptSuntax.Append(" else")
JavaScriptSuntax.Append(" {")
JavaScriptSuntax.Append(" }")
JavaScriptSuntax.Append(" }")
JavaScriptSuntax.Append(" oFileObj.Close();")
Dim page As Page = HttpContext.Current.Handler
page.ClientScript.RegisterClientScriptBlock(page.GetType(), "SCRIPTNAME", JavaScriptSuntax.ToString, True)
Return True
Catch ex As Exception
gstrErrorMsg = ex.Message
Return False
End Try
End Function
' Button Click Function in referencing ASP.NET Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim IsDone As Boolean = DispCaller. ReadClientFile()
End Sub