HTML子过程在IE11中总是提示未定义,是怎么回事?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML子过程在IE11中总是提示未定义,是怎么回事?相关的知识,希望对你有一定的参考价值。
我的本意是想用户在点击“本地上传”时,运行脚本“OpenLink”以资源管理器方式打开FTP,在IE8中能够正确运行,但是在IE11中总是提示“OpenLink”未定义,这究竟是什么回事?
<a href="#" onclick="OpenLink(1)" target="new">本地上传</a>
<script language="VBScript" type="text/VBScript">
sub OpenLink(I)
dim StrTarget
StrTarget="FtpLink"
select case I
case 1
StrTarget="explorer ftp://ftpUrl1……/"
case 2
StrTarget="explorer ftp://ftpUrl2……/"
end select
Set oScript=CreateObject("WSCRIPT.SHELL")
Call oScript.Run(StrTarget)
Set oScript=Nothing
end sub
</script>
我这是单位内网的一个运行在网页中的简单脚本,不是WORD宏脚本,该脚本在IE8中运行正常,就是在IE11中不行,不知道问题是出在什么地方。
解决办法:
1、检查js的导入路径及文件名。
标准方法是把javascript文件放到head标签内。
<head>
<script type="text/javascript" src="dreamdu.js"></script>
</head>
如果浏览器不支持JavaScript,将忽略script标签里面的内容,可以避免使用<!-- ... //-->(内部引用)。
当JavaScript有任何HTML实体时,也不需要使用CDATA标签了(因为JavaScript代码不直接在HTML文件中)。
JavaScript文件必须使用js为文件后缀。
2、检查调用的函数名称以及入参是否正确
比如,本来定义函数function test()
结果调用的时候写成了sest等等。
VBA的宏显示“子过程或函数未定义”
在网上找到一个用来检查文章中重复词的宏,但是在测试时提示子过程或函数未定义,不知道怎么修改,求个高手帮帮忙。
代码如下:
Sub FinReP()
Dim iRng As Range, jRng As Range
Dim i As Integer, j As Integer, o As Integer
Set iRng = ActiveDocument.Content
With iRng.Find
.ClearFormatting
.Replacement.ClearFormatting
Do While .Execute(findtext:="<[!^13]@^13<[!^13]@^13", MatchWildcards:=True)
Set jRng = iRng.Duplicate
i = 1
For j = 0 To Len(iRng) - 1
Set jRng = Range(iRng.Start + j, iRng.Start + j + 1)
If jRng Like "[一-﨩]" And jRng.Font.Color = wdColorAutomatic Then
Set fRng = Range(jRng.End, iRng.End)
o = 0
Do While fRng.Find.Execute(findtext:=jRng, MatchWildcards:=False)
i = i + 1
jRng.Font.ColorIndex = i - o
fRng.Font.ColorIndex = i - o
fRng.SetRange fRng.End, iRng.End
o = o + 1
Loop
End If
Next
iRng.SetRange iRng.End, ActiveDocument.Content.End
Loop
End With
End Sub
2、对子过程(或函数)的定义不一致。
例如:子过程test1做在某个工作表中,设定的是private属性。然后在模块中有一个全局程序test要调用其这个子过程,那么就会出现这种错误。更改方法:将这个子过程设置成全局的(public),并放在模块中,这样就可以解决了。 参考技术A 代码放在 ThisDocument中不会报错,代码放在模块中就会报错,因为Range需要限定
所有的Range前要加上ActiveDocument.本回答被提问者采纳 参考技术B Sub Auto_Open()
ThisWorkbook.Application.Caption = APP_NAME_STR
CreateTableMenu
End Sub
Sub CreateTableMenu()
DeleteTableMenu
MenuBars(xlWorksheet).Menus.Add (MENU_REPORT_STR)
MenuBars(xlWorksheet).Menus(MENU_REPORT_STR).MenuItems.Add Caption:=MENU_REPORT_HISTDATA_SEARCH_STR, OnAction:="FormShow"
End Sub
Sub DeleteTableMenu()
On Error Resume Next
MenuBars(xlWorksheet).Menus(MENU_REPORT_STR).MenuItems(MENU_REPORT_HISTDATA_SEARCH_STR).Delete
On Error Resume Next
MenuBars(xlWorksheet).Menus(MENU_REPORT_STR).Delete
On Error Resume Next
End Sub
Sub FormShow()
UserForm2.Show
End Sub
Function ChangeDate(ByVal OldDate As String) As String
Dim DateLen, i As Long
Dim ss, EndDate As String
Dim mas As Integer
EndDate = ""
DateLen = Len(OldDate)
For i = 0 To DateLen - 1
ss = Mid$(OldDate, i + 1, 1)
mas = Asc(ss)
If mas <> 0 Then
EndDate = EndDate + ss
End If
Next i
ChangeDate = EndDate
End Function
Function GetVBString(ByVal OldStr As String) As String
Dim nLen, i As Long
Dim ss, strRet As String
Dim mas As Integer
Dim nSpacePos As Integer
nLen = Len(OldStr)
nSpacePos = nLen
For i = 0 To nLen - 1
ss = Mid$(OldStr, i + 1, 1)
mas = Asc(ss)
If mas = 0 Then
nSpacePos = i
Exit For
End If
Next i
GetVBString = Left(OldStr, nSpacePos)
End Function
以上是关于HTML子过程在IE11中总是提示未定义,是怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章