第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

通過(guò)JavaScript打開(kāi)CHM幫助文件到特定頁(yè)面

通過(guò)JavaScript打開(kāi)CHM幫助文件到特定頁(yè)面

這里有很多關(guān)于這個(gè)主題的帖子,但沒(méi)有一個(gè)是從網(wǎng)頁(yè)啟動(dòng) CHM 幫助文件的解決方案。背景:該項(xiàng)目不在互聯(lián)網(wǎng)上,它是一個(gè)在 IE11 中運(yùn)行的醫(yī)療設(shè)備上本地運(yùn)行的網(wǎng)站。它之前被編碼為Flash ActionScript Web應(yīng)用程序,并成功使用了ActionScript的ExternalInterface.call(“callJavascript”,variableStr); 打開(kāi) CHM 文件。不幸的是,該項(xiàng)目需要移植到 HTML5,而我還沒(méi)有找到有效的 JavaScript 解決方案。CHM 文件及其中每個(gè)頁(yè)面的路徑取自 JSON 文件,并且根據(jù)需要訪問(wèn) CHM 中的哪個(gè)頁(yè)面,連接鏈接。chm/myHelp.chm::cat2page1.html就是一個(gè)示例 。因此,使用 ActionScript,當(dāng)用戶單擊按鈕時(shí),該函數(shù)會(huì)創(chuàng)建完整的字符串,傳遞給包含 HTML 頁(yè)面中名為“callJavascript”的 JavaScript 函數(shù),該函數(shù)又將 CHM 文件打開(kāi)到正確的頁(yè)面:private function launchURL(e:MouseEvent) {        if (_helpLibIndex != "" && _myHelpLink != "") {            // ex: JavaScript:   callJavascript('chm/GloCyte.chm::cat2page1.html')            var variableStr:String = _helpLibIndex + "::" + _myHelpPageLink;            ExternalInterface.call("callJavascript", variableStr );        }    }以及托管 Flash swf 的 HTML 頁(yè)面上的 JavaScript:<script type="text/javascript">        function callJavascript(str) {            //window.alert(str);            window.showHelp(str);        }    </script>應(yīng)該很容易轉(zhuǎn)換為直接 JS - 對(duì)吧?不幸的是我有很多問(wèn)題。在直接 HTML5 頁(yè)面中調(diào)用類似的函數(shù)時(shí),在將完整的 CHM 路徑和頁(yè)面連接在一起并將其傳遞給啟動(dòng)函數(shù)時(shí),我收到 404 錯(cuò)誤“找不到項(xiàng)目”。如果我忽略該頁(yè)面并僅使用 CHM 文件的路徑,瀏覽器會(huì)提示“打開(kāi)或保存”該文件。當(dāng)我選擇“打開(kāi)”時(shí),CHM 文件在 Microsoft HTML 幫助控件版本 10.0 中啟動(dòng)到堆棧中的第一頁(yè),但僅顯示頁(yè)面的導(dǎo)航面板,并且正文區(qū)域?yàn)榭瞻?空。從以這種方式打開(kāi)的導(dǎo)航面板中手動(dòng)選擇頁(yè)面將不會(huì)在正文區(qū)域中顯示其內(nèi)容。但是,如果我從桌面手動(dòng)打開(kāi) CHM 文件,它會(huì)顯示正文區(qū)域中的所有頁(yè)面,但從網(wǎng)頁(yè)啟動(dòng)它時(shí)仍然失敗。這是我在新的 HTML5 頁(yè)面中的 JS 代碼。之前從導(dǎo)入的 JSON 文件中檢索 _helpLibIndex 和 _myHelpLink:function launchURL() {if (_helpLibIndex != "" && _myHelpLink != "") {   // appending myHelpLink gives 404 error.   // leaving it off kinda launches the CHM, but no content is viewable in the body area    // example string = 'chm/myHelp.chm::cat2page1.html'   var variableStr = _helpLibIndex + "::" + _myHelpLink;   window.showHelp(variableStr);   console.log("attempted to launch the showHelp file. URL is: " + variableStr);}我不太明白在這種情況下 ActionScript 工作與 JavaScript 不工作之間的區(qū)別,因?yàn)檫@兩種情況下的最終調(diào)用都是來(lái)自托管網(wǎng)頁(yè)的 JS。非常感謝任何幫助!
查看完整描述

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

簡(jiǎn)短的故事 - 在查看 ITS (CHM) 文件內(nèi)部時(shí)使用完整路徑。根據(jù)我的測(cè)試,相對(duì)路徑規(guī)范(包括 CHM 中的主題規(guī)范)不起作用。它僅適用于 CHM 幫助文件本身。

幾年前的一系列安全修復(fù)已將 HTMLHelp 縮減為僅充當(dāng)本地幫助。也許這個(gè)問(wèn)題已經(jīng)得到了不同的解決。

我希望給您一個(gè)想法,但您必須根據(jù)您的需求進(jìn)行調(diào)整(您提到使用IE11)。我沒(méi)有使用 Flash ActionScript 的經(jīng)驗(yàn),因?yàn)樗惨恢贝嬖诎踩珕?wèn)題。所以,我不知道為什么 ActionScript 在這種情況下可以工作,而 JavaScript 不能。

HTML Help 1.x 不具備通過(guò) http 提供壓縮幫助的功能。您可以指向用戶本地驅(qū)動(dòng)器上的 .chm,也可以鏈接到 .chm 進(jìn)行下載,但僅此而已。

查看 ITS (CHM) 文件內(nèi)部的功能僅是Microsoft Internet Explorer 所獨(dú)有的。只有 Internet Explorer(不是 Microsoft Edge 瀏覽器)可以加載本地路徑,例如:

ms-its:D:\_temp\CHM-example.chm::/garden/garden.htm

https://img1.sycdn.imooc.com/654f7f610001615a06510144.jpg

該前綴ms-its是早期的可插入?yún)f(xié)議,遵循萬(wàn)維網(wǎng)聯(lián)盟 (W3C) 制定的舊標(biāo)準(zhǔn)。該ms-its協(xié)議適用于 Microsoft Internet Explorer 4.0 或更高版本,但并非所有瀏覽器都支持。


因此,我在同一個(gè)本地文件夾中有一個(gè)test.htm文件和一個(gè)CHM-example.chmD:\_working文件。請(qǐng)注意,window.showHelp在外部應(yīng)用程序(幫助查看器 hh.exe)中打開(kāi) HTML 幫助文件 (.chm)。


請(qǐng)務(wù)必使用 Internet Explorer 11(上下文菜單,使用 IE11 打開(kāi))進(jìn)行測(cè)試。AFAIK -showHelp()不是 javascript(或 JScript)函數(shù) - 它是 Microsoft Internet Explorer DHTML 方法。


<!DOCTYPE html>

<html>

<head>

? ? <script type="text/javascript">

? ? ? ? ? ??

? ? ? ? function OpenHelpFile () {

? ? ? ? ? ? // open help file in help viewer - IE 11 only

? ? ? ? ? ? // --------------------------------------------------------

? ? ? ? ? ? // for optional use cases when CHM resides in another place

? ? ? ? ? ? // var DriveStr = "D:";

? ? ? ? ? ? // var SubFolderStr = "_working";

? ? ? ? ? ??

? ? ? ? ? ? var HelpFileName = "CHM-example.chm";

? ? ? ? ? ? var HelpFileStr = HelpFileName;

? ? ? ? ? ??

? ? ? ? ? ? // open help file topic in help viewer - IE 11 only

? ? ? ? ? ? // --------------------------------------------------------

? ? ? ? ? ? <!-- window.showHelp ("CHM-example.chm", null) -->

? ? ? ? ? ? alert ("attempted to launch the showHelp file. URL is: " + HelpFileStr);

? ? ? ? ? ? window.showHelp (HelpFileStr);

? ? ? ? }


? ? ? ? function OpenHelpTopic () {

? ? ? ? ? ? //? open help file topic in help viewer - IE 11 only

? ? ? ? ? ? // --------------------------------------------------------

? ? ? ? ? ? var DriveStr = "D:";

? ? ? ? ? ? var SubFolderStr = "_working";

? ? ? ? ? ? var HelpFileName = "CHM-example.chm";

? ? ? ? ? ? var HelpTopicStr = DriveStr + "\\" + SubFolderStr + "\\" + HelpFileName + "::" + "/garden/flowers.htm";? ?

? ? ? ? ? ??

? ? ? ? ? ? // open help file topic in help viewer - IE 11 only

? ? ? ? ? ? // --------------------------------------------------------

? ? ? ? ? ? <!-- window.showHelp ("D:\\_working\\CHM-example.chm::/garden/flowers.htm", null) -->

? ? ? ? ? ? alert ("attempted to launch the showHelp file. URL is: " + HelpTopicStr);

? ? ? ? ? ? window.showHelp (HelpTopicStr);

? ? ? ? }


? ? ? ? function OpenHelpTopicInNewTab () {

? ? ? ? ? ? // open help topic in new tab - only working inside IE11 using ms-its protocol

? ? ? ? ? ? // ---------------------------------------------------------------------------

? ? ? ? ? ? // "ms-its:D:\_working\CHM-example.chm::/garden/garden.htm"

? ? ? ??

? ? ? ? ? ? var ProtocolStr = "ms-its:";

? ? ? ? ? ? var DriveStr = "D:";

? ? ? ? ? ? var PathToFileStr = "\\_working\\CHM-example.chm";

? ? ? ? ? ? var HelpTopicStr = ProtocolStr + DriveStr + PathToFileStr + "::" + "/garden/garden.htm";

? ? ? ? ? ??

? ? ? ? ? ? alert ("attempted to launch the showHelp file. URL is: " + HelpTopicStr);

? ? ? ? ? ??

? ? ? ? ? ? // please note: window.open (!) ---------------------------------------------

? ? ? ? ? ? window.open (HelpTopicStr, null);

? ? ? ? }

? ? ? ??

? ? </script>

</head>

<body>

<p>Help Information www.help-info.de</p>

<hr />

<p>Open a help file</p>

<div>

? ? <button onclick="OpenHelpFile ();">Open a help file!</button>

</div>

<hr />

<p>Open a help topic</p>

<div>

? ? <button onclick="OpenHelpTopic ();">Open a help topic!</button>

</div>

<hr />

<p>Open a help topic in a new browser tab</p>

<div>

? ? <button onclick="OpenHelpTopicInNewTab ();">Open a help topic in a new browser tab!</button>

</div>

</body>

按鈕步驟(2 和 3)將生成下面的屏幕截圖(請(qǐng)注意第二個(gè)瀏覽器選項(xiàng)卡是第三個(gè)按鈕的結(jié)果)。

https://img1.sycdn.imooc.com/654f7f7100019adf06520377.jpg

您可能需要CHM-example.chm從我的 HTMLHelp (HH) 信息站點(diǎn)下載上述使用的文件

將此 CHM 文件保存到本地驅(qū)動(dòng)器后的第一步:請(qǐng)檢查雙擊 CHM 文件后,內(nèi)容是否完整顯示在右側(cè)主題窗口中。

如果沒(méi)有,請(qǐng)注意 - 要打開(kāi)此 CHM 文件,請(qǐng)右鍵單擊該文件,單擊“屬性”,然后選中“取消阻止”并單擊“確定”,如下面的屏幕截圖所示:

https://img1.sycdn.imooc.com/654f7f7f00010ecf03550503.jpg

在同一目錄中根據(jù)上面的代碼創(chuàng)建后,test.htm請(qǐng)確保使用 Internet Explorer 打開(kāi)允許阻止的內(nèi)容。

出于安全原因,瀏覽器窗口底部帶有按鈕的消息將在大約 10 秒后自動(dòng)消失。

https://img1.sycdn.imooc.com/654f7f8c0001212a06390434.jpg

查看完整回答
反對(duì) 回復(fù) 2023-11-11
  • 1 回答
  • 0 關(guān)注
  • 408 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)