JSファイルからJavaScript関数を問題なく呼び出すことができます。AJAX関数を同じファイルに移動すると、関数を呼び出すことができません。AJAX関数は、それらが呼び出されたのと同じファイルにあることを必要としますか?
Home.html
<button onclick=scale(id)>scale</button>
<button onclick=save(id)>Save</button>
Javascript.js
function scale(id){
//scales the element with the given id
//works
}
function save(id){
//Does not work unless in Home.html file
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "SaveValue.php?id="+id, true);
xmlhttp.send();
SaveValue.php
//Sends value to mysql db
-更新-AJAX関数をそれ自体で別のJSファイルに移動し、それをhtmlファイルにリンクすると、すべてが機能しました。
Ajaxオプションを実行するJavaScript関数は、それらのロードに関する限り、他の関数と何ら変わりはありません。
HTMLドキュメントにインライン関数を含める必要はありません。
もちろん、それでも、<script>
それらをロードするための要素が必要です(または、スクリプトデータをフェッチしXMLHttpRequest
て実行するなどの方法に頼る必要がありeval
ます。これはお勧めしません!)。
問題がある場合は、<script>
要素がファイルをロードできなかったことが原因である可能性があります。これの最も一般的な理由は、ブラウザの開発者ツールによって明らかにされます。
application/javascript
(またはレガシーtext/javascript
)。コンソールはエラーを報告し、[ネットワーク]タブにはコンテンツタイプが表示されます。<script>
要素のHTMLが間違っているか、間違った場所にあります(これは、マークアップバリデーターを使用して取得されることがよくあります)。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加