JScript是一种基于ECMAScript标准的脚本语言,由Microsoft创建并在各种环境中实现。您可能希望此标记附带有关这些环境的问题,例如Windows脚本宿主(WSH),Active Server Pages(ASP)和HTML应用程序(HTA)。
Windows 11 22H2 有不同的 JS 引擎使用方式吗?
我们有一个基于 Web 浏览器构建的解决方案,该解决方案将使用 JS 引擎。升级到Windows 11 22H2后,我们发现解决方案的行为与以前不同。我们做了一些研究,然后...
我有一个使用 Javascript 构建的对象数组,我需要使用 VBScript 读取它(如下例所示)。我找不到在 VbScript 代码中循环遍历数组的方法,因为 myArray ob...
我在 Windows 7/10 中使用以下脚本打开文件对话框并允许用户选择文件。即使添加了多个属性,它也不允许我选择多个文件。雅高...
经典 ASP 和 json2.js:如何访问带有特殊字符的键?
在此答案中:https://stackoverflow.com/a/1021848/5280471 建议使用“语言包装”技术通过导入 json2.js JavaScript 文件(如 s...
在 VBA 中访问 Variant/Object/JScriptTypeInfo 属性
我有以下代码VBA代码(用于Excel模块) 函数 getDesc(ByVal pCode As String) As String Dim oRequest 作为对象 设置 oRequest = CreateObject("WinHttp.WinHttpRequest.5.1") ...
我在 Fiddle 上重新创建了我的问题:https://jsfiddle.net/RayLove21/k05xhgaL/30/ 这是我用来附加自定义选择的函数。 函数 CREATE_OPTION() { var varForm = '<
在这个例子中,我想找出数组中是否有元素: 函数 OnTestCmd(scriptCmdData){ print(["珍妮", "玛蒂尔达", "格蕾塔"].indexOf("玛蒂尔达&q...
简单的 javascript 函数可将下一个/上一个 H1 滚动到屏幕顶部 - 在使用 MSHTA.exe 运行的 HTA 应用程序中
我是一名业余程序员,并制作了一个 HTA 文件,其中包含一些 JavaScript 和一个可编辑的内容 。使用最少的 JavaScript,我可以设置键盘快捷键来格式化、保存和退出。 ... 我是一名业余程序员,并且制作了一个 HTA 文件,其中包含一些 JavaScript 和一个可编辑的内容 <DIV>。使用最少的 JavaScript,我可以设置键盘快捷键来格式化、保存和退出。 我正在完全更新的 Windows 10 系统中使用 mshta32.exe 运行该文件。我的空 HTA 只有 12k,为此我可以进行自动换行、格式化、链接图像、打印(包括 PDF)和实时拼写检查!它不是文字处理程序,但对于无干扰的写作,我很喜欢这种体验。 我的下一个目标是使用这些文件进行演示;我需要的最少功能是“下一张幻灯片”和“上一张幻灯片”快捷方式。使用 <H1> 标签作为幻灯片标题似乎是合理的,因此我的快捷方式只需要滚动,以便下一个或上一个 <H1> 位于屏幕顶部(是的,HTA 确实以大写形式保存标签)。 在互联网/ChatGPT 上有使用 document.querySelector 的解决方案,但这似乎在 HTA/MSHTA 中不受支持(我尝试过使用 content=ie=edge 和 http-equiv=X-UA-Compatible 的元标记)。不热衷于 JQuery,因为这是一个极简主义项目,需要离线工作,所以我尝试用 jQuery 翻译一个建议: 制作一个滚动到下一个标题的跳过按钮 $('html, body').scrollTop($(this).nextInDOM($('h1, h2, h3, h4, h5, h6')).position().top); event.preventDefault(); 至 JavaScript: document.querySelector('html, body').scrollTop(document.querySelector(this).nextInDOM(document.querySelector('h1, h2, h3, h4, h5, h6')).position().top); event.preventDefault(); 这不起作用!欢迎任何指导。 亲切的问候加文霍尔特 整个HTA <!DOCTYPE html> <HTML> <HEAD unselectable="on"> <TITLE unselectable="on"> ContentEditor - O:\MyProfile\editor\templates\default.hta</TITLE><?XML:NAMESPACE PREFIX = "HTA" /> <HTA:Application id=document.currentScript VERSION="2" SYSMENU="yes" Singleinstance="no" ShowInTaskBar="yes" scroll="yes" NAVIGABLE="yes" MinimizeButton="yes" MaximizeButton="yes" Icon="O:\MyProfile\cmd\IcoFX\ContentEditor.ico" ContextMenu="No" Border="No" APPLICATIONNAME="MSI-BUILD"></HTA:Application> <BASE target=_blank unselectable="on"> <META name=viewport content="width=device-width, initial-scale=1" unselectable="on"> <META content=ie=edge unselectable="on"> <META http-equiv=X-UA-Compatible unselectable="on"> <STYLE unselectable="on"> @media Unknown { .sidenav { PADDING-TOP: 15px } } HTML { COLOR: #657b83; MARGIN: 1em; BACKGROUND-COLOR: #fdf6e3 } BODY { FONT-SIZE: 24px; FONT-FAMILY: Helvetica, arial, sans-serif; LETTER-SPACING: 0px; BACKGROUND-COLOR: #fdf6e3 } .sidenav { FONT-SIZE: 22px; OVERFLOW: hidden; HEIGHT: 100%; WIDTH: 0px; OVERFLOW-X: hidden; POSITION: fixed; PADDING-TOP: 4px; LEFT: 0px; Z-INDEX: 1; TOP: 0px; BACKGROUND-COLOR: #111; transition: 0.5s } .sidenav A { TEXT-DECORATION: none; COLOR: #818181; PADDING-BOTTOM: 8px; PADDING-TOP: 8px; PADDING-LEFT: 32px; DISPLAY: block; PADDING-RIGHT: 8px; transition: 0.3s } .sidenav P { COLOR: #818181; PADDING-BOTTOM: 4px; PADDING-TOP: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px } TD { COLOR: #818181; PADDING-BOTTOM: 4px; PADDING-TOP: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px } TH { COLOR: #818181; PADDING-BOTTOM: 4px; PADDING-TOP: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px } B { COLOR: #818181; PADDING-BOTTOM: 4px; PADDING-TOP: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px } U { COLOR: #818181; PADDING-BOTTOM: 4px; PADDING-TOP: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px } .sidenav A:hover { COLOR: #f1f1f1 } .sidenav TABLE { BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; LINE-HEIGHT: 1; BORDER-TOP-WIDTH: 0px } TR { BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; LINE-HEIGHT: 1; BORDER-TOP-WIDTH: 0px } TD { BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; LINE-HEIGHT: 1; BORDER-TOP-WIDTH: 0px } TH { BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; LINE-HEIGHT: 1; BORDER-TOP-WIDTH: 0px } #editor { PADDING-BOTTOM: 16px; PADDING-TOP: 16px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; transition: margin-left .5s } H1 { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } H2 { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } H3 { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } P { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } A { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } CODE { FONT-SIZE: 24px; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } H1 { FONT-SIZE: 26px; FONT-VARIANT: small-caps } TABLE { WIDTH: 95%; BORDER-COLLAPSE: collapse } TABLE { BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none } TD { BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none } TH { BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none } TR { VERTICAL-ALIGN: top; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } TD { VERTICAL-ALIGN: top; TEXT-ALIGN: left; LINE-HEIGHT: 1.2 } TD { } TH { } TABLE { PAGE-BREAK-INSIDE: auto } TR { PAGE-BREAK-INSIDE: avoid; PAGE-BREAK-AFTER: auto } THEAD { DISPLAY: table-header-group } TFOOT { DISPLAY: table-footer-group } </STYLE> <SCRIPT language=JScript type=text/jscript unselectable="on"> <!-- function preventDefault(e){ if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } } function toggleNav() { if (document.getElementById("mySidenav").style.width=="260px") { closeNav(); } else { openNav(); } } function openNav() { document.getElementById("mySidenav").style.width = "260px"; document.getElementById("editor").style.marginLeft = "260px"; document.getElementById("mySidenav").style.overflow = "scroll"; } function closeNav() { document.getElementById("mySidenav").style.width = "0"; document.getElementById("editor").style.marginLeft= "0"; document.getElementById("mySidenav").style.overflow = "hidden"; } function writeFile(){ // Deal with funny \ at work! var filename = window.location.pathname var fso, fileHandle; fso = new ActiveXObject("Scripting.FileSystemObject"); fileHandle = fso.CreateTextFile(filename.replace(/\//,""), true); fileHandle.write("<!DOCTYPE html>"); fileHandle.write("<HTML>"); fileHandle.write(document.documentElement.innerHTML); fileHandle.write("</HTML>"); fileHandle.close(); } function getSelected() { if (window.getSelection) { return window.getSelection(); } else if (document.getSelection) { return document.getSelection(); } else { var selection = document.selection && document.selection.createRange(); if (selection.text) { return selection.text; } return false; } } function insertText(text) { if (document.selection){ var range = document.selection.createRange(); range.pasteHTML(text); } } function followlink(){ alert('followlink called'); } function popupmenu(event) { alert('popupmenu called'); // Need to know the event.target - but don't want jquery! // use window.screenLeft window.screenTop } function Shortcuts(e){ if (!e) var e = window.event; var key = e.keyCode if (e.ctrlKey) { key = "ctrl"+key; } if (e.altKey) { key = "alt"+key; } if (e.shiftKey) { key = "shift"+key; } // alert(key) // ESC if ( key == 27) { writeFile(); window.close(); } // TAB alone if ( key == 9) { preventDefault(e); document.execCommand("indent", true, null); return false; } // Shift+TAB if (key == "shift9") { preventDefault(e); document.execCommand("outdent", true, null); return false; } // Ctrl+> if ( key == "ctrl190") { document.execCommand("indent", true); } // Ctrl+< if ( key == "ctrl188") { document.execCommand("outdent", true); } // Ctrl+Up TODO: Fails with this key if ( key == "ctrl38") { document.execCommand("superscript", true); } // Ctrl+Down TODO: Fails with this key if ( key == "ctrl40") { document.execCommand("subscript", true); } // Ctrl++ - Built in zoom+ // Ctrl+- - Built in zoom- // Ctrl+/ Try to wrap any selection if ( key == "ctrl191") { var sText = getSelected(); var code = "<code>" + sText + "</code>" insertText(code); } // Ctrl+\ Clear formatting if ( key == "ctrl220") { document.execCommand("removeFormat", true); } // Ctrl+A - Built in select all // Ctrl+B - Built in bold // Ctrl+C - Built in copy // Ctrl+D if ( key == "ctrl68") { document.execCommand("strikethrough", true); } // Ctrl+E - Editor if ( key == "ctrl69") { WshShell = new ActiveXObject("WScript.Shell"); WshShell.Run("O:/MyProfile/editor/micro.bat " + window.location.pathname,1,true) } // Ctrl+F - Built in Find // Ctrl+G - Google if ( key == "ctrl71") { WshShell = new ActiveXObject("WScript.Shell"); WshShell.run("http://www.google.com"); } // Ctrl+H - Hyperlink if ( key == "ctrl72") { var sText = getSelected(); var linkURL = prompt('Enter a URL:', 'http://'); // This is to match the automated format when URL is pasted/typed var link = '<A href="' + linkURL + '" target="_blank">' + sText + '</A>'; insertText(link); } // Ctrl+I - Built in italic // Ctrl+J - Jump to next H1 - for slide presentations if ( key == "ctrl74") { } // Ctrl+K - Built in hyperlink // Ctrl+L - Ordered list if ( key == "ctrl76") { document.execCommand("insertUnorderedList", true); } // Ctrl+M if ( key == "ctrl77") { // Undo default action of CRLF return false; } // Ctrl+N - Numbered List if ( key == "ctrl78") { document.execCommand("insertOrderedList", true); } // Ctrl+O - Empty // Ctrl+P - Built in Print // Ctrl+Q - Empty // Ctrl+R - Revert if ( key == "ctrl82") { window.location.reload(false); } // Ctrl+S - Save if ( key == "ctrl83") { writeFile(); } // Ctrl+T - Insert Table - TODO: need some css or in line styles if ( key == "ctrl84") { document.execCommand("indent", true, null); var table = "<table>" table = table +"<tr>" table = table +" <th>Company</th>" table = table +" <th>Contact</th>" table = table +" <th>Country</th>" table = table +"</tr>" table = table +"<tr>" table = table +" <td>Alfreds</td>" table = table +" <td>Maria</td>" table = table +" <td>Germany</td>" table = table +"</tr>" table = table +"<tr>" table = table +" <td>Centro</td>" table = table +" <td>Francisco</td>" table = table +" <td>Mexico</td>" table = table +"</tr>" table = table +"</table>" insertText(table); } // Ctrl+U - Built in Underline // Ctrl+V - Built in Paste // Ctrl+W - Write and Close if ( key == "ctrl87") { writeFile(); window.close(); } // Ctrl+X - Built in Cut // Ctrl+Y - Built in Redo // Ctrl+Z - Built in Undo // F1 if ( key == 112) { toggleNav(); } // Ctrl+0 if ( key == "ctrl48") { document.execCommand("formatBlock", false, "<P>"); } // Ctrl+1 if ( key == "ctrl49") { document.execCommand("formatBlock", false, "<H1>"); } // Ctrl+2 if ( key == "ctrl50") { document.execCommand("formatBlock", false, "<H2>"); } // Ctrl+3 if ( key == "ctrl51") { document.execCommand("formatBlock", false, "<H3>"); } } // Try to stop focus outside my div for (i=0; i<document.all.length; i++){ //ensure that all document elements except the content editable DIV are unselectable document.all(i).unselectable = "on"; } // Change title var filename = window.location.pathname document.title = " ContentEditor - " + filename.replace(/\//,"") // Focus on the editable section window.location.hash = '#editor'; // Settings document.execCommand("LiveResize", null, true); //--> </SCRIPT> </HEAD> <BODY tabIndex=-1> <DIV tabIndex=-1 id=mySidenav class=sidenav style="OVERFLOW: scroll; WIDTH: 260px" unselectable="on"><U><B>Help</B></U> <TABLE> <TBODY> <TR> <TD>ESC </TD> <TD>Save + exit</TD></TR> <TR> <TD>TAB </TD> <TD>Indent</TD></TR> <TR> <TD>Shift+TAB </TD> <TD>Outdent</TD></TR> <TR> <TD>Ctrl+A </TD> <TD>Select All</TD></TR> <TR> <TD>Ctrl+B </TD> <TD>Bold</TD></TR> <TR> <TD>Ctrl+C </TD> <TD>Copy</TD></TR> <TR> <TD>Ctrl+D </TD> <TD>Strikeout</TD></TR> <TR> <TD>Ctrl+E </TD> <TD>Edit page</TD></TR> <TR> <TD>Ctrl+F </TD> <TD>Find</TD></TR> <TR> <TD>Ctrl+I </TD> <TD>Italic</TD></TR> <TR> <TD>Ctrl+K </TD> <TD>Hyperlink</TD></TR> <TR> <TD>Ctrl+L </TD> <TD>Bullet list</TD></TR> <TR> <TD>Ctrl+N </TD> <TD>Num list</TD></TR> <TR> <TD>Ctrl+P </TD> <TD>Print</TD></TR> <TR> <TD>Ctrl+R </TD> <TD>Revert</TD></TR> <TR> <TD>Ctrl+S </TD> <TD>Save</TD></TR> <TR> <TD>Ctrl+T </TD> <TD>Insert table</TD></TR> <TR> <TD>Ctrl+U </TD> <TD>Underline</TD></TR> <TR> <TD>Ctrl+V </TD> <TD>Paste</TD></TR> <TR> <TD>Ctrl+W </TD> <TD>Save + exit</TD></TR> <TR> <TD>Ctrl+X </TD> <TD>Cut</TD></TR> <TR> <TD>Ctrl+Y </TD> <TD>Redo</TD></TR> <TR> <TD>Ctrl+Z </TD> <TD>Undo</TD></TR> <TR> <TD>Ctrl+/ </TD> <TD>Code</TD></TR> <TR> <TD>Ctrl+< </TD> <TD>Superscript</TD></TR> <TR> <TD>Ctrl+> </TD> <TD>Subscript</TD></TR> <TR> <TD>Ctrl+\\ </TD> <TD>Unformat</TD></TR> <TR> <TD>Ctrl+Del </TD> <TD>Del EOW</TD></TR> <TR> <TD>Ctrl+Bksp </TD> <TD>Del BOW</TD></TR> <TR> <TD>Ctrl+n </TD> <TD>Heading 1-3</TD></TR> <TR> <TD>F1 </TD> <TD>Toggle Help</TD></TR></TBODY></TABLE> <P></P></DIV> <DIV spellcheck=true tabIndex=-1 onkeyup=Shortcuts() id=editor contentEditable=true onkeydown="return (event.keyCode!=9);" style="MARGIN-LEFT: 260px" oncontextmenu=popupmenu()></DIV> <SCRIPT type=text/javascript> <!-- //--> </SCRIPT> </BODY></HTML> 嗨, 非常感谢迄今为止的所有建议,总而言之: 我的 writeFile() 功能总是会添加 <?XML:NAMESPACE PREFIX = "HTA" />,这使我处于 IE7 模式。 function writeFile(){ // Deal with funny \ at work! var filename = window.location.pathname var fso, fileHandle; fso = new ActiveXObject("Scripting.FileSystemObject"); fileHandle = fso.CreateTextFile(filename.replace(/\//,""), true); fileHandle.write("<!DOCTYPE html>"); fileHandle.write("<HTML>"); fileHandle.write(document.documentElement.innerHTML); fileHandle.write("</HTML>"); fileHandle.close(); } 我需要 <hta:application> 部分来控制窗口和图标。 <hta:application id=document.currentScript applicationname="MSI-BUILD" border="No" contextmenu="No" icon="O:\MyProfile\cmd\ContentEditor.ico" maximizebutton="yes" minimizebutton="yes" navigable="yes" scroll="yes" showintaskbar="yes" singleinstance="no" sysmenu="yes" version="2" > 使用函数查看documentMode和ScriptEngine,我得到带有JScript 11.0.16384的IE7。 ver = 'IE' + document.documentMode + ' , '; ver += ScriptEngine() + ' '; ver += ScriptEngineMajorVersion() + '.'; ver += ScriptEngineMinorVersion() + '.'; ver += ScriptEngineBuildVersion(); alert(ver); 所以,我认为我被 IE7 时代的脚本困住了。 亲切的问候加文霍尔特 您关于如何询问ChatGPT的建议非常有帮助,这个功能正是我所需要的: function scrollToNextH1() { var h1Elements = document.getElementsByTagName('h1'); var currentH1Index = -1; for (var i = 0; i < h1Elements.length; i++) { if (h1Elements[i].getBoundingClientRect().top > 0) { currentH1Index = i; break; } } if (currentH1Index !== -1 && currentH1Index < h1Elements.length - 1) { var nextH1 = h1Elements[currentH1Index + 1]; window.scrollTo(0, nextH1.offsetTop); } } 在这短短的时间内,我学到的东西比用搜索引擎搜索的日子还要多。乐于助人的人和优秀的法学硕士的结合是非常有效的。 非常感谢
我尝试使用按钮更改文本样式,但无法使其适用于具有相同 id 的多个
我正在尝试制作一个按钮,可以添加和删除网站某些部分的样式,在本例中更改元素的背景颜色。 尽管按钮在...时工作正常
CalendarID 和 CalendarName 有什么功能区别?
我创建了一个小的 Google 工作表,可以生成幻灯片和日历事件。 主页三页 在对现有的 jscripts 进行了大量修改之后,我让它工作了,但是有一些关于
我的 prog.js 看起来像这样: var WshShell = WSH.CreateObject("WScript.Shell"); var env = WshShell.Environment("进程"); WSH.Echo(env.Length); // 46 WSH.Echo(env("操作系统"...
有人能弄清楚为什么这在 Windows 10 中不起作用吗?它在 Windows 11 中运行良好
我刚刚在这里找到了一些代码。我喜欢显示(UI)的想法,并一直使用它为我的组织的日常运营制作一些编译的修复程序。 这是完整的代码: @if (@CodeSection == @
我在启用 csrf 的情况下双重发布表单时遇到问题。 在我的设置中:移动自动完成功能会自动发布表单,但在重定向之前,如果我单击“提交”,因为所有字段都已填写...
Clearscript ScriptEngine 是否保留后续执行调用的代码?
varsharedJSLibrary =“bla”; var特定DownstreamScript =“bla2”; scriptEngine.Execute(sharedJSLibrary); scriptEngine.Execute(具体的DownstreamScript); 执行clearScript e...
当 Web 浏览器使用过时的 IE11 时,需要更好的方法在 C# 表单中使用 HTML
我在 Windows 窗体中显示 HTML,我可以在其中编辑并快速查看结果。以下代码有效,但如果“ShowString”引用了不允许 IE11 的站点,那么...
我遇到了一个问题,试图摆脱cmd弹出窗口并使命令中的所有数据出现在span标签中。我知道足以让命令正常工作,但不知道如何实现
我希望用户通过创建的输入标签提供文件夹或目录的路径,如下所示: var newinput = document.createElement('input'); newinput.type = "文件"; 新输入。
OnClick 函数在 div 类 blog-slider__img 中不起作用
我想知道是否有人可以帮助我,当我将按钮放在这个div上时,无法单击它来使其播放音频。 在此输入图像描述 我究竟做错了什么? 索引...
如何显示/处理在 Power Automate Desktop 中运行 JavaScript 流操作时引发的错误?
有关脚本操作的文档指出,会生成一个变量 ScriptError: https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/scripting#variables- Produced-2
如何在 Power Automate Desktop 中运行 JavaScript 流操作时传播/处理抛出的错误?
有关脚本操作的文档指出,会生成一个变量 ScriptError: https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/scripting#variables- Produced-2