[解決済み] Javascript IE エラー: メソッドまたはプロパティアクセスへの予期せぬ呼び出し
質問
次のようなコードで、IE以外では(通常通り)動作しています。Jqueryのメソッドまたはプロパティへのアクセスで予期しない呼び出しがあり、デバッグの方法がわかりません。IE開発者ツールバーを使っていますが、このエラーには役に立たず、12行目(jqueryスクリプトの中)が表示されるだけです。
よろしくお願いします。
<script type="text/javascript">
$(document).ready(function () {
$.history.init(pageload);
$('a[href=' + window.location.hash + ']').addClass('selected');
$('a[rel=ajax]').click(function () {
var hash = this.href;
hash = hash.replace(/^.*#/, '');
$.history.load(hash);
$('a[rel=ajax]').removeClass('selected');
$(this).addClass('selected');
$('.loading').show();
getPage();
return false;
});
});
function pageload(hash) {
if (hash) getPage();
}
function getPage() {
hash = document.location.hash;
hash = hash.replace(/^.*#/, '');
var data = 'page=' + encodeURIComponent(hash);
$.ajax({
url: "index.php",
type: "POST",
data: data,
cache: false,
success: function (html) {
$('.loading').hide();
$('tbody').html(html);
}
});
}
</script>
以下は履歴プラグインです。 http://plugins.jquery.com/project/history
そして、私が追っているデモはこちらです。 http://plugins.jquery.com/project/history
window.locationをdocument.locationに戻しても変化がないようです。
これは迷いますね。呼び出しているタグを変更すると投稿されるので動作しているのですが、IEではデザインがすべて崩れてしまい、次にクリックしたリンクが投稿されません。本当に不思議です! FirefoxやOperaなどでは問題なく動作します。
どうすればいいですか?
IEが文句を言うとはちょっと驚きですが、それはそれで良いことです。での宣言が抜けていますね。
getPage
に対して
hash
(例)
var
を最初の使用の前に置く)。
他は、暗黙のうちにグローバルなもの(例えば、"C "のプロパティ)を作成していると思われます。
window
というオブジェクトがあります。
hash
) であり、これはもちろん
悪いこと
(tm)ですが、私の理解では、仕様書によると正しいです(関連するセクションは 8.7 ["The Reference
型"] と 10.1.4 ["Scope Chain and Identifier Resolution"] を参照してください)。
それにしてもIEが文句を言うとは驚きです。これは、jQueryがクリックハンドラを呼び出すスコープと関係があるのでしょう。
関連
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptでsetIntervalの呼び出しを停止する
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] JavaScriptには、与えられた範囲内の範囲を生成する "range() "のようなメソッドがありますか?
-
[解決済み] Javascriptのcall() & apply() vs bind()?
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする
-
[解決済み] Javascriptオブジェクトの最初のプロパティにアクセスする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?