VBScript を使用しているページを変更する必要があります。
関数でローカル変数を Application オブジェクトに設定する際に問題があります。関数内の以下のコードはgetObjectSchema
、エラーを生成します。
Set LocalSchema = Application("ObjectSchema")
以下のコードは、本体 (関数の外側) ではまったく問題なく動作します。
Set Schema = Application("ObjectSchema")
誰が何が悪いのか知っていますか?関数から Application オブジェクトへのアクセスに制限はありますか?
ここに完全なコードがあります
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
.style1 {
width: 87px;
}
</style>
</head>
<body>
<script type="text/vbscript">
Option Explicit
Dim ObjectSchema
Dim strXML
Dim strXML1
Dim sUserId
On Error Resume Next
Function GetUserID()
GetUserID = "{3450E0D8-EE30-48EE-B63F-486506AD1D97}"
End Function
Function getObjectSchema()
Dim LocalSchema
Set LocalSchema = Application("ObjectSchema")
If LocalSchema Is Nothing Then
Set LocalSchema = CreateObject("Scripting.Dictionary")
End if
If LocalSchema.Exists(sUserId) Then
strXML = LocalSchema.Item(sUserId)
Else
strXML = "<head><title>Title</title></head><head1><title1>Title1</title1></head1>"
LocalSchema.Add sUserId, strXML
Set Application("ObjectSchema") = LocalSchema
End if
getObjectSchema = strXML
End Function
sUserId = GetUserID()
strXML = ""
strXML1 = ""
strXML = getObjectSchema()
strXML1 = getObjectSchema()
strXML = getObjectSchema()
strXML1 = getObjectSchema()
Dim Schema
Set Schema = Application("ObjectSchema")
If Schema Is Nothing Then
Set Schema = CreateObject("Scripting.Dictionary")
End if
If Schema.Exists(sUserId) Then
strXML = LocalSchema.Item(sUserId)
Else
strXML = "<head><title>Title</title></head><head1><title1>Title1</title1></head1>"
Schema.Add sUserId, strXML
Set Application("ObjectSchema") = Schema
End if
strXML1 = strXML
</script>
</body>
</html>