从浏览器打开文件时出现奇怪的Javascript / vbscript行为

时间:2012-07-13 20:56:18

标签: javascript file vbscript

我最近需要处理的旧Web应用程序存在问题。有一个输入元素包含以下内容:

onClick="javascript:Run('**SomeFilePath.mdb**');"

这应该是打开用户各自的.mdb文件。

首先,没有任何地方定义的javascript Run函数。我在网上搜索,因为我想也许这是一个旧的JavaScript内置,但我找不到任何东西。

第二个,有一个vbscript Run()函数,它实现了源代码中定义的描述行为,但据我所知javascript不能通过ajax调用,而你可以看到isn发生了什么事。

奇怪的是,这适用于某些用户!

如果有人能说清楚为什么我会欣赏它!

编辑:我正在处理的唯一浏览器是IE。我知道有一个active-x方式来打开一个文件,这就是我上面提到的vbscript Run()函数正在使用的。

更新: 所以经过更多的调查/研究,似乎当IE没有找到javascript Run()函数时,它默认为vbscript Run() IS定义的函数。但是,这仅在某些版本的IE上发生。谁能证实这种行为?

研究链接:

  
    

Comment referring to how IE defaults w/ scripting

         

Msdn article about using both script types in same page

  

1 个答案:

答案 0 :(得分:1)

是的,你可以从javascript运行vbscript,反之亦然,有时当一种语言不支持另一种语言时,我会这样做。 您可以在脚本中指明哪些是默认语言,以防您没有指定它。

您也可以在调用函数时指定它,如vbscript:functionname(“..”)或javascript:functionname(“..”)

正如您所注意到的,有些情况下浏览器会混淆并且找不到该功能,因为他以错误的语言搜索/执行该功能。 这种行为受到版本的影响我也会受到影响,但肯定是逻辑在脚本中流动的顺序,如果浏览器首先执行javascript,他会倾向于在这种语言中进一步使用以防万一。 所以要逃避这个

  1. 除非真的需要,否则不要混合两者,在javascript中翻译你的vbscript函数)
  2. 尝试始终使用javascript,vbscript不太善于处理DOM等
  3. 如果它们是混合的,请在调用函数时指定正确的脚本语言
  4. 打开脚本标签时,也要提供正确的语言或
  5. 因此,具体来说,要解决您的问题,请将vbsripts函数转换为javascript,如果不可能,请调用您的函数,如onClick="vbscript:Run('**SomeFilePath.mdb**')"