コンソールエラーオブジェクトが関数ではない場合の解決策_基礎知識

WBOY
リリース: 2016-05-16 16:38:49
オリジナル
1772 人が閲覧しました

本日、ページ上の機能が使用できないというバグが報告されました。コンソールを開くと、「オブジェクトは関数ではありません」というエラーが表示されます。

最近この機能に触れていないのに、なぜ突然問題が発生するのでしょうか?主要なブラウザはすべて、オンラインになったときにテストされました。

奇妙ではありますが、それでも問題は解決します。コードを見ると、ラジオオブジェクトの name 属性が関数名と同じ名前になっていることがわかりました。コードは次のとおりです:

<body> 
<input type="radio" name="test" onclick="test();"/> 
<br/> 
<form action=""> 
<input type="radio" name="test" onclick="test();"/> 
</form> 
</body> 
<script type="text/javascript"> 
function test(){ 
alert("11"); 
}
</script>
ログイン後にコピー

関数名を変更して問題を解決しました。しかし、以前はこのような関数名で正常に使用できていたため、根本的な原因は見つかりませんでした。コードを変更
onclick="アラート(テスト);"

「object HTMLInputElement」がポップアップし、ブラウザがテストを dom オブジェクトに解析していることがわかりました。

スクリプトテスト後も関数alert(test)はそのままです。

svn バージョンを見ると、別の機能を実行しているときにラジオをラップするフォームを追加していることがわかりました。これにより、ブラウザーの解析エラーが発生します。

要約: 変更されていないコードは問題ではない可能性があります。変更によって他の問題が発生した可能性があります。ブラウザの互換性の問題の中には、コードの不規則性が原因で発生するものもあります。今後は、標準化された方法でコードを記述する必要があります。

フォームを追加した後にブラウザー解析の問題が発生する理由を知っている専門家がいたら、教えていただけますか。どうもありがとうございます!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート