2

IE で Web ページを実行すると、このエラーが発生します (コードは他のブラウザーで正常に動作します)。

これは HTML コードです。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<--- some html code --->
<iframe src='http://localhost/page1.php' style="background: transparent; overflow: hidden; height: 210px; width: 390px;" frameborder="0"  />
</body>
</html>

これはpage1.phpです

<!DOCTYPE html>
<html>
<body>
<form action="usercheck.php" method="POST">
USERNAME:<input name="uname" id="uname" type="text" maxlength="12" required/>
<input type="submit" value="Submit">
</form>
</body>
</html>

これはusercheck.phpです

<?php
//some php code    
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<--- some html code --->
</body>
</html>

問題は、usercheck.php送信ボタンをクリックした後に到達するpage1.phpとエラーが発生http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js. Access is denied.することです Here is a image of error: http://i.stack.imgur.com/diCoF.jpg。その結果、「$」記号が定義されていないというエラーが表示されます(これは、jquery ライブラリのロードに失敗したためです)。

編集-サーバーにjqueryファイルを含めようとしましたが、それでもエラーが発生します。また、usercheck.php に対して次のコードを試しました。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
/*! jQuery v1.10.1 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
//and the rest of the jquery library...
</script>
</head>
<body>
<--- some html code --->
</body>
</html>

今回発生するエラーは次のとおりです: http://i.stack.imgur.com/hR9aN.jpg (私のサーバーでは、usercheck2.php の元の名前は rscheck.php です)。その結果、「$」記号が定義されていないというエラーが表示されます(これは、jquery ライブラリのロードに失敗したためです)。page1.php のコンテンツを (url- localhost/page1.php で) 直接開くと、すべて正常に動作します。

これは、私が JQuery を使用している唯一のコードです。

if($("#pret").contents().text().search("NAMECHECK: NOTAVALIBLE")!=-1)

このコードを JavaScript に変換できる場合にのみ、jquery を除外できます。

4

4 に答える 4

6

これは正当なjQuery 1.10.1バグです: http://bugs.jquery.com/ticket/13980
を使用jQuery 1.10.0するか1.10.2、エラーが発生しなくなりました。

于 2013-09-09T16:35:54.543 に答える
-1

その理由は にありiframeます。jQuery は外部ホストから iframe にロードされるため、メイン/外部 HTML ファイルで jQuery 関数を使用しようとするたびに、IE はセキュリティ上の理由によりエラーをスローします。

1) jQuery をサーバーにアップロードするか、

2)または、メインの html ファイルのみに含めます (iframe には含めません)。

于 2013-06-20T12:56:37.303 に答える