IE8でjQuery関数を動作させようとしています。 Googleのサーバーからライブラリをロードしています( http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js )。
$(function(){})
は呼び出されません。代わりに、エラーObject expected
が表示されます。開発者を開き、コンソールでtypeof $
を実行すると、undefined
として表示されました。
JQuery(jquery.com)を使用していることがわかっている他のサイトにアクセスしようとしましたが、それらはすべて機能しますが、ここに欠けているものがありますか?
変数を定義するときは、変数の前に「var」を記述します。 IE8は、「var」がないと死にます。
補正:
スクリプトのincludeタグを確認してください。
type="application/javascript" src="/path/to/jquery"
への変更
type="text/javascript" src="/path/to/jquery"
私は同様の問題を抱えていました。 IE7互換モードで実行されているIE6、Firefox、およびIE8で動作しました。 「通常の」IE8ではそうではありません。私の解決策は、このコードをヘッダーに入れることでした
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
IE8でjqueryが機能しない理由については不明です。
解決策は、jQueryの最新バージョンにアップグレードすることです。私はまったく同じ問題を抱えていて1.4.2にアップグレードしましたが、IE8でもすべて正常に動作します。
私が行ったjQuery 1.3.2のすべてと完全に後方互換性があるようですので、ここで苦情はありません!
私はこの問題を抱えており、ここで言及した解決策を試してみましたが、成功しませんでした。
最終的に、http URL
を使用してGoogle CDNバージョンのスクリプトにリンクしているのに、スクリプトを埋め込むページはhttps page
であることに気付きました。
これにより、すなわちがjqueryをロードしませんでした(安全なコンテンツのみをロードするかどうかをユーザーに確認します)。 Google CDN URLを変更してhttpsスキームを使用すると、問題が解決しました。
この投稿に出くわした人の中には、jQuery v2を使用しているため、jqueryとIE8でこの問題が発生する場合があります。このコードを使用してください:
<!--[if lt IE 9]>
<script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
<script src="jquery-2.0.0.js"></script>
<!--<![endif]-->
jQueryはロードされていません。これはおそらくIE8に固有のものではありません。 jQueryインクルードのパスを確認してください。ステートメント。さらに良いことに、CDNに以下を使用します。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">
</script>
サイトでHTTPSを使用している場合は、代わりにGoogleのhttpsサーバーからjQueryライブラリをロードする必要があります。これを試してください: https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js (または最新の https://ajax.googleapis.com /ajax/libs/jquery/1.5.1/jquery.min.js )
Doctypeを含めるのを忘れたsomebodyによって作成されたテンプレートを修正しました。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
doctype
を宣言しないと、IE8はQuirksモードで奇妙なことをします。
Jqueryがロードされていないため、エラーObject expected
が発生します。これは、外部のJavaScriptソースコードの実行を許可しないブラウザセキュリティ(通常はIE)が原因で発生します。この問題は次の方法で修正できます。
OR
私は最初の解決策を好みます。
Onloadイベントは、IE7/8 in <head> ... </head>
で常に機能するとは限りません。
以下のように、タグの前のページの最後にonloadスクリプトを追加することにより、強制的に実行できます。
<script>
window.onload();
</script>
</body>
これによりIE8の問題が修正されました。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
Localhostで実行して、https://をhttp://に変更する必要がありました
セキュリティで保護されたリンクを参照しようとすると、Internet ExplorerではWebページを表示できませんフレンドリーな警告が表示されます。
問題がある場合は、まずテキストスクリプトをブラウザに読み込むようにしてください!
同じ問題がありました。
IE8がSRC URLに到達するように正しく構成されていないことを確認して解決しました。
これを変更しましたが、正しく機能します。
たぶん、あなたは2つのスクリプトを挿入します、それは動作するはずです。
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">/script>
同じ問題がありました。解決策は、リンクをIEの信頼済みサイトとしてJQueryファイルに追加することでした。
inPrivate Filtering がオンになっている可能性がありますか?
私と同じ問題があると思います:
Message: Permission denied
Line: 13
Char: 27021
Code: 0
URI: http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.3.2.min.js
クロスドメイン参照のため。同じドメインでjquery.jsをホストしてみてください。
私の場合の解決策は、アクセスしようとしているURLから特殊文字を取り除くことでした。そこにチルダ(〜)とパーセント記号があり、$。get()呼び出しは黙って失敗しました。
OK! jQueryがロードされていることを知っています。 jQuery.textshadow.js
が読み込まれていることを知っています。 Developer Toolsで両方のスクリプトを見つけることができます。
奇妙な部分:このコードはコンテンツ領域で機能していますが、バナーでは機能していません。専用のfixIE.css
でも。そして、私はCSSをインラインに配置すると動作します。 (もちろん、FireFoxを台無しにします。)
運が悪ければ、バナーのテキストフィールドの周りに条件付きIEスパンを配置しました。
jquery-1.4.2.min.js
とjquery-1.2.6.min.js
の両方に違いはなく、同じエラーがありました。 jquery.textshadow.js
は、この問題の解決策を見つけようとしてjQueryサイトからダウンロードされました。
これはウェブサイトに投稿されていません
要するに、IE8の解析エンジンが原因です。
Microsoftが新しいHTML5タグ(「セクション」など)の操作に問題を抱えている理由を推測してください。これは、MSが他の世界のように通常のXML解析を使用しないと決定したためです。はい、そうです-彼らはXMLで大量のプロパガンダを行いましたが、最終的には、「既知のタグ」を探して何か新しいものが来たときに物事を台無しにする「愚かな」解析エンジンに頼ります。
IE8とjloadの「load」、「get」、「post」に関する問題についても同じことが言えます。繰り返しになりますが、Microsoftはバージョン8で「独自の道を歩む」ことを決定しました。IE9でこれを解決(d)できることを期待して、唯一の選択肢は<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
でIE7解析にフォールバックすることです。
まあ...マイクロソフトがフォーラムに再び投稿したことは驚くべきことです。 ;)