2012-06-12 23 views
7

私はプログラマーではないので、事前に申し訳ありませんが、ウェブを検索しても答えが見つかりません。SafariでJavascriptが動作していますが、ChromeやFirefoxでは動作しません

this websiteから在庫検索を行い、Facebookのタブに入れようとしています。私はウェブサイトのコードをつかんで、TextEditで必要ではないヘッダーとフッターを編集しました。私は在庫検索部分を取ろうとしているだけです。

Safariでテストしたところ、うまく動作していたようです。インベントリの検索が始まり、すべてのボタンとフィルタが完全に機能し、別のページに移動したときにヘッダーとフッターがまだなくなり、インベントリ検索だけが完了しました。

ただし、ChromeとFirefoxでテストした場合、ボタンとフィルタはまったく機能せず、最初のページを通過したりフィルタを適用したりすることはできません。

私はサイト(上記のリンクのようなインベントリ検索の最初のページ)に行き、ソースコードを私のデスクトップに保存して、いつChromeまたはFirefoxでいつ開くかを確認し、それは、ボタンやフィルターは、最初のページに固執しませんでした。しかし、それはSafariで動作しました。

これはどういう意味ですか?今私はあきらめるべきですか?私はコードを含めるだろうが、それは私が今まで見た中で最も長いです。 TextEditで行ったすべてのコードのテスト。

編集:ここ
はChromeでエラーです:

キャッチされないでSyntaxError:予期しないトークン< Chevy.html:4608 XMLHttpRequestがhttp://www.erikschevrolet.com/searchVehicles.ajaxをロードすることはできません。 Origin-nullはAccess-Control-Allow-Originによって許可されていません。
未知のエラー:XmlRenderEngine =>不明なエラーbundle.js:1 XMLHttpRequestはhttp://www.erikschevrolet.com/searchVehicles.ajaxをロードできません。 Origin-nullはAccess-Control-Allow-Originによって許可されていません。
未知のエラー:XmlRenderEngine =>不明なエラーbundle.js:1 XMLHttpRequestはhttp://www.erikschevrolet.com/searchVehicles.ajaxをロードできません。 Origin-nullはAccess-Control-Allow-Originによって許可されていません。
未知のエラー:XmlRenderEngine =>不明なエラーbundle.js:1

+4

Chromeとffにエラーはありますか?もしあれば、それらを含めてください。また、ページはサーバー上に生成されるようです。もしそうなら、ヘッダーファイルなどを含めないことでサーバ側全体を簡単にすることができます。 – tcooc

+2

あなたの正確なユースケースはわかりませんが、あなたがここで行っていることが合法であることに注意してください。そのサイトのコードは「Chrome Systems Corporation」が所有しています。許可なくコードを盗み、再利用することは違法です。そうでなければ、良い質問:) – jwegner

答えて

1

これらのChromeの警告はここでは関係ありません。上記のエラーは、起点を越えた​​問題に関するものです。 Javascriptの中からリモートリソースにアクセスすることは本当に悪いことが原因で、現代のブラウザは明白に許可されていない限り、それらをブロックします。

たとえば、http://example.comのほとんどのコンテンツには、http://example.netドメインの下でjavascriptを使用することはできません。ほとんどのファイルをダウンロードしたのでローカルで実行しようとしていますが、そのうちのいくつかはまだhttp://www.erikschevrolet.comドメインのファイルを参照していますが、許可されていません。

AFAIKこの問題を回避する実際の方法はありません。最も安全な解決策は、使用されているすべてのファイルをダウンロードし、ローカルパスへの参照を参照して手動で参照をhttp://www.erikschevrolet.comに変更することです。

var request = new XMLHttpRequest(); 
var url = 'http://bar.other/resources/credentialed-content/'; 
function callOtherDomain(){ 
    if(request) 
    { 
    request.open('GET', url, true); 
    request.withCredentials = "true"; 
    request.onreadystatechange = handler; 
    request.send(); 
    } 
} 

そしてこれさえ:この(http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/からの例)のような別の方法として、いずれかに該当するのXMLHttpRequestのwithCredentials値を設定することができます(ただし、プログラマじゃないから、あなたは...混乱それを本当にすることができます)これらのファイルの多くがおそらくサーバー上で動的に生成され、変更される可能性があるため、期待される結果を得られない可能性があります。

+0

ありがとう!私は自分自身でリファレンスを変更するか、自分が行っていることを知っている人にプロジェクトを委託します。 –

+1

あなたが私の答えに満足すれば、それをアップフォートして受け入れることができますか? ;) – mgol

+0

JSONPを使用してクロスドメイン要求を行うか、単純にJSではなくサーバーで行う – sciritai

0

javascriptのXMLまたはテキストファイルを特定の読み込みファイルスキームで読み込む際に問題があるようです。これは、これを試すだけでなくクロムサファリFirefoxの上で動作します

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

は、http作品の要求が、ここではこのような場合には、あなたがJavaScriptでの作業のようなものを試してみることができますブラウザで起こります。

関連する問題