在WSH中运行并创建对象的Javascript程序中,假设是Scripting.FileSystemObject或任意COM对象,我在完成它时是否需要将变量设置为null?例如,我建议这样做:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fileStream = fso.openTextFile(filename);
fso = null; // recommended? necessary?
... use fileStream here ...
fileStream.Close();
fileStream = null; // recommended? necessary?
Run Code Online (Sandbox Code Playgroud)
效果不同于让变量超出范围吗?
Firebug给我以下错误:
ActiveXObject is not defined
[Break on this error] var xmlhttp = new ActiveXObject("MSXML2.XmlHttp");
Run Code Online (Sandbox Code Playgroud)
我已经读过ActiveX是一个Microsoft框架,它主要用于IE.我工作的地方的所有内部网页都是专门为IE 6设计和构建的,但现在他们希望我研究迁移到Firefox和Safari以及其他主要浏览器所需的内容......而且ActiveX无效Firefox浏览器.
那么如何在Mac上专门为Firefox和Safari设置ActiveX内容(对于初学者)?我知道有几个插件?这使得事情变得更容易......就像FF ActiveX Host ...但是有没有一个程序化的解决方案呢?
如果没有解决方案,没有插件,对于这个问题,是否可以用Java重写ActiveX片段?
我正在使用以下代码从javascript打开Word文档:
function openWord(file) {
try {
var objword = new ActiveXObject("Word.Application");
} catch (e) {
alert(e + 'Cannot open Word');
}
if (objword != null) {
objword.Visible = true;
objword.Documents.Open(file);
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,唯一的问题是Word应用程序在打开时不会出现在前面,而是在浏览器后面打开.有没有办法强制Word在任何其他窗口之上打开?或者当它打开时把它带到前面?
我有一个像这样的JavaScript代码:
o = new ActiveXObject("ASDFsome.Application");
utilites = WScript.CreateObject("ASDF.Utilites.UTF.Converter")
utilites.Convert(outFile, xmlProp.xml)
Run Code Online (Sandbox Code Playgroud)
现在我想用C#代码重写它.我该如何在Net中使用ActiveXObject?
我正在page/router component使用 Angular 7 及其 CLI 在网站上开发一个小程序。有一次我需要检查用户是否允许 flash,我这样做:
checkFlash() {
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"));
} catch (exception) {
hasFlash = "undefined" != typeof navigator.mimeTypes["application/x-shockwave-flash"];
}
return hasFlash;
}
Run Code Online (Sandbox Code Playgroud)
我在这里找到了这个,它工作得很好,但是现在当我清理我的应用程序时,我注意到 Angular 似乎不喜欢这个,事实上,它说它ActiveXObject没有定义,但它仍然有效。
超级纠结...
我试图连接一个实际的闪光物体,像这样$('embed[type="application/x-shockwave-flash"]')或$('embed[type="application/x-shockwave-flash"]')[0]但没有运气,它总是返回真。
我尝试安装额外的npm(s),包括像activex-support和activex-data-support他们的@types表兄弟一样的。在设置它们之后,我发现它们对我的案子没有任何帮助。
以下是
CLI&VScode-Intellisense给我的确切错误:
[ts] 'ActiveXObject' only refers to a type, but is being used as a value …
我有一个主页,称之为Main.php.在这个页面上,是一个按钮,当点击它时,使用Results.php的结果设置div的innerHTML(已经在Main.php上,称为divResults).
调用Results.php时,返回的HTML"这些结果"被正确接收并设置为Main.php上divResults的内容.但是,来自Results.php的任何javascript都不会执行.作为一个例子,我尝试做一个简单的window.alert.这是示例代码:
Main.php链接按钮开始动作:
<img src="$MyImageSource" onclick=\"ExpandDropdownDiv()\" />
Run Code Online (Sandbox Code Playgroud)
Main.php javascript函数ExpandDropdownDiv():
function ExpandDropdownDiv(){
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("divResults").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","Results.php",true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
Results.php代码示例:
<script type="text/javascript">
alert("Success");
</script>
These Are The Results
Run Code Online (Sandbox Code Playgroud)
------------------编辑 - 更新------------------
来自Results.php的简单警报只是一个例子.如果我能够让这个工作,我相信我可以自己解决我的其余问题.但是,我注意到一些评论建议在我设置div的innerHTML之后将警报放在Main.php的javascript中.所以,让我解释一下在div设置之后我真正想要用javascript做什么.
图1显示了一些正常的"选择"html元素,这些元素已经使用jquery和dropdown-check-list扩展名(.js)进行了转换.当用户单击底部的彩色向下箭头时,div会扩展,(图像2)并在另一个.php文件中生成另外两个"选择"元素...将返回html,并将其放置在div中.因此,我不需要重新加载整个页面,并且可以将新的选择下拉列表放在现有页面的下方.
问题是,要"转换"这些正常的选择元素,需要对该HTML执行一些javascript:
$(document).ready(function() {
$(".MultiSelect").dropdownchecklist( {firstItemChecksAll: true, maxDropHeight: 300 , searchTextbox: true, width: 100, textFormatFunction: …Run Code Online (Sandbox Code Playgroud) 我想发布一个应用程序,例如.使用javascript函数单击按钮时记事本或MSword.我试过用于IE的ActiveXObject.
function runApp()
{
var shell = new ActiveXObject("WScript.shell");
shell.run("notepad.exe", 1, True);
}
Run Code Online (Sandbox Code Playgroud)
我需要一个支持Firefox的解决方案.
请建议.
提前致谢.
我在javascript中有一个关于ActiveXObject的问题.我在Mozila FireFox 6.0.2中尝试了这段代码
var AXobj = new ActiveXObject("WScript.Shell");
AXobj.SendKeys(key);
Run Code Online (Sandbox Code Playgroud)
但错误控制台说ActiveXObject未定义.在那之后,我尝试了这个:
var AXobj = new DOMParser("WScript.Shell");
AXobj.SendKeys(key);
Run Code Online (Sandbox Code Playgroud)
但是,错误控制台说:
错误:未捕获异常:[例外..."安全错误"代码:"1000"nsresult:"0x805303e8(NS_ERROR_DOM_SECURITY_ERR)"位置:"file:/// C:/ Documents%20and%20Settings/Guest/Desktop/stuff/html/GML%20to%20JS.html Line:335"]
顺便说一句,我不想只为SendKeys使用ActiveXObject.我需要更多东西(比如写入文件......)而且,我使用FireFox而不是IE的原因是FireFox支持HTML5.
例如:
var a = " ";
var b = "";
b = a * 8;
alert(b +"this far to the right");
Run Code Online (Sandbox Code Playgroud)
注意:我不想使用,因为ActiveX FSO将用于写入文本文件而不是html文件.所以它只需要空格:
我正在努力实现的更详尽的细节:
我试图让ActiveX FSO在提交表单后从HTML订单表单写入文本文件,然后继续将订单写入文本文件.文本文件需要采用特定格式,以便Microsoft Dynamics接受作为导入销售.
如下所示:客户代码 空间 商品代码 空间 数量 空间:
import.txt减去字符串长度,其中slot =要填充的剩余空格.
C242299A *4 white spaces* 2890 *12 white spaces* 20 *6 white spaces*
[------------][----------------][--------]
12 char slots 16 char slots 8 char slots
Run Code Online (Sandbox Code Playgroud)
write.js将创建这个import.txt文件(这是我需要帮助的部分)
var customercode = document.getElementById("customercode").value;
var itemcode = document.getElementById("itemcode").value;
var quantity = document.getElementById("quantity").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var …Run Code Online (Sandbox Code Playgroud)