0

リモートホストに CSS ファイルが存在するかどうかを確認し、存在しない場合は同じ CSS ファイルのローカルコピーをロードする必要があるサイトで作業しています。

私が取り組んでいるコード、

<script>
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}
function AddLocalCss(){ document.write('<link rel="stylesheet" type="text/css"  href="css/html5-reset.min.css">') }
</script>
<script>!UrlExists('http://meyerweb.com/eric/tools/css/reset/reset.css') && AddLocalCss();</script>

しかし、これはエラーをスローします (Chrome 開発者ツールでチェックした場合)

XMLHttpRequest cannot load http://meyerweb.com/eric/tools/css/reset/reset.css. Origin http://example.com is not allowed by Access-Control-Allow-Origin.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 

これを達成するための解決策または回避策を提案してもらえますか?

4

2 に答える 2

0

この投稿の機能の一部を使用できます。jQueryを使用せずにコールバックを使用してjavascriptを使用してcssファイルを動的にロードすると、その関数を直接使用できます。

これがお役に立てば幸いです

于 2012-08-15T15:28:42.403 に答える
0

XHRは同一生成元ポリシーによって制限されています-余分なフープをジャンプせずに別のドメイン/プロトコルからリソースを要求することはできません。リモートサーバーにCORSを設定するように要求するか、XHRをまったく使用しないようにする必要があります。

その代わりに、要素を生成してlink、その状態またはロードされたスタイルが影響を与える他の要素の状態を監視することができます。残念ながら、この動作はブラウザ間で標準化されていませんが、幸いなことに、処理を簡素化するためのライブラリがいくつかあります。確認してください

于 2012-08-15T15:28:51.620 に答える