我可以从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
-Update- 当我将AJAX函数单独移动到一个不同的JS文件中,并将其链接到html文件中时,一切正常。
答案 0 :(得分:0)
执行Ajax选项的JavaScript函数与加载它们时的任何其他函数没有区别。
不要求在HTML文档中包含内联函数。
当然,你仍然需要一个<script>
元素来加载它们(或采取诸如使用XMLHttpRequest
获取脚本数据并通过eval
运行它 - 这是不推荐!)。
如果您遇到问题,则很可能是由于<script>
元素无法加载文件。浏览器中的开发人员工具显示了最常见的原因:
application/javascript
(或遗留text/javascript
)。控制台将报告错误,“网络”选项卡将显示“内容类型”。<script>
元素的HTML错误或位置错误(通常会通过使用标记验证程序来获取)。