2010-05-17 53 views
3
function publish(text) { 
$('#helpdiv').prepend(text); 
} 

function get_help(topic) { 
    $.get(topic, publish); 
} 

<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p> 
<div id="helpdiv"></div> 

使用Javascript/jQuery的拒絕我繼承了HTML的這個塊和JavaScript以上(片斷)。它/將被用作本地幫助。目前它只在網上,它工作正常。但是,當我在本地複製文件時,我在Internet Explorer中獲得「權限被拒絕」,而Chrome在「單擊此處獲得更多幫助」時不會執行任何操作。它應該做的是從inline-help.html加載幫助內容並將其顯示在helpdiv div中。現在,這裏是踢球者,如果我將相同的文件複製到我的PC上的inetpub並將它們加載爲http://localhost/hello.html,則它的功能完美。權限上的本地文件

大概這就是「本地」區域沒有讓我加載文件從用戶的HD的安全事?但是我不確定發生了什麼,希望進一步瞭解這個問題,並有可能提出解決方法。

任何洞察力,非常感謝。

+0

什麼是更加好奇了,如果我使用WPF鉻包裹的控制,它正常工作與本地文件。這讓我覺得它不是jquery,而是瀏覽器設置。 我指的是這個。 http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb 2010-05-17 20:51:14

回答

1

jQuery的「獲取」使用XMLHttpRequest的,它不會對本地文件的工作,很遺憾。如果您確實需要能夠異步獲取本地數據(或來自不同域的數據),則應使用動態腳本標記。但是這意味着數據文件必須重新格式化爲JSON數據。

+0

它爲什麼不起作用?這是故意的嗎?有沒有使用其他方法的解決方法或動態腳本標籤唯一的方法去? 更令人好奇的是,如果我使用WPF包裝的Chromium控件,它可以很好地處理本地文件。這讓我覺得它不是jquery,而是瀏覽器設置。 我指的是這個。 http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb 2010-05-17 20:50:48

+0

這不是一個jQuery的問題,而只是它的工作方式。我同意這是愚蠢的。就我所知,動態腳本標籤是唯一可行的方式。你也許可以用Flash做些事情,但是,你知道.... ick。 – rob 2010-05-17 21:41:19

+0

在這個主題中,這位研究員把問題歸結爲IE對ActiveX控件和jQuery處理它的期望:https://social.msdn.microsoft.com/Forums/ie/en-US/9ae077e0-a7b9-433f- 835f-2643aa1a7e09/ie11previewcannot-讀本地文件與 - Ajax的方法 - 的 - jQuery的?論壇= iewebdevelopment – bgmCoder 2017-06-10 20:23:28

0

我不認爲你的瀏覽器可以讓你在本地運行JavaScript(使用file:///訪問方法)。但是,當你從http://localhost/加載它,它工作正常。

您需要可以開發一個網站,或使用本地主機服務器。

+0

這並沒有什麼區別。 – billb 2010-05-17 20:48:49

+0

@billb - ...你剛纔在您的文章說,它適用於通過'http://本地主機/',但是當你本地加載直通誤解你的評論文件 – 2010-05-17 21:05:35

+0

失敗。我以爲你說過通過file:///而不是c:\ filename.html來引用它。 通過http:// localhost引用它不是一個選項,因爲最終用戶不會安裝Web服務器。 – billb 2010-05-18 12:50:43