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>

上記のHTMLとJavaScriptのこのチャンク(スニペット)を継承しました。ローカルヘルプとして使用される予定です。現在はオンラインのみで、正常に動作します。ただし、ファイルをローカルにコピーすると、Internet Explorerで「アクセスが拒否されました」と表示され、「ヘルプが必要な場合はここをクリック」してもChromeでは何も実行されません。inline-help.htmlからヘルプコンテンツをロードし、helpdivdivに表示することになっています。これがキッカーです。同じファイルをPCのinetpubにコピーして、http://localhost/hello.htmlとしてロードすると、完全に機能します。

おそらくこれは、「ローカル」ゾーンでユーザーのHDからファイルをロードできないというセキュリティ上の問題ですか?しかし、何が起こっているのかよくわかりません。この問題をさらに理解し、回避策を考え出す可能性があります。

どんな洞察も大歓迎です。

4

2 に答える 2

1

jquery の "get" は xmlHttpRequest を使用しますが、これは残念ながらローカル ファイルでは機能しません。ローカル データ (または別のドメインからのデータ) を非同期で取得できるようにする必要がある場合は、動的スクリプト タグを使用する必要があります。ただし、これは、データ ファイルを JSON データとして再フォーマットする必要があることを意味します。

于 2010-05-17T19:59:56.837 に答える
0

file:///お使いのブラウザでは、JavaScriptをローカルで(アクセス方法を使用して)実行できるとは思いません。しかし、そこからロードするとhttp://localhost/正常に動作します。

Webサイトで開発するか、ローカルホストサーバーを使用する必要があります。

于 2010-05-17T19:56:04.887 に答える